2010-03-09 2 views
1

В моем приложении я динамически создаю строки и столбцы. Я создал столбец типа System.DateTime. После этого я хочу отобразить элемент управления datetimepicker для всех строк в этом столбце.

я создал столбец с помощьюC# как отображать элемент управления datetimepicker для всех строк gridview

dataTable.Columns.Add("CreatedOn", Type.GetType("System.DateTime")); 


и я добавлять строки в

foreach(String filename ......) 
dataTable_FileProperty.Rows.Add(filename,//here i want to add dateTimePicker 

Итак, что такое решение для этого.

EDIT: Предоставьте фрагмент кода. Я новичок в C# .net.
Спасибо.

+0

@ronny: DateTimePicker - это элемент управления System.Windows.Forms. Возможно, вам нужен asp: Календарь? (из System.Web.UI.WebControls) – abatishchev

+0

@abatishchev: Я создаю приложение Windows.Forms. – Jessica

+0

Я вижу. Меня смутили теги 'asp.net' и 'gridview', которые вы задали в первую очередь. Мое решение касается веб-приложения. Хотя я надеюсь, что вы найдете что-то полезное для вашего дела. – abatishchev

ответ

1

используйте шаблон элемента сетки и разместите там datetimepicker. Хорошим примером является here

Для его реализации вы должны реализовать интерфейс ITemplate.

Другим примером является this

Простая реализация этого дается в this msdn article. Но код находится в VB.net.

+0

Решение, предоставленное вами, является настолько сложным. Я жду легкого. в любом случае Спасибо. :) – Jessica

+0

Я обновил простую ссылку реализации msdn. Надеюсь, поможет. – HotTester

0

DataTable.Rows содержит данные, то есть имя файла, дату, некоторые строки.

GridView.Columns содержит элементы управления для отображения данных.

Так что, если вы используете DataRowCollection.Add(Object[]):

DataTable DataTable1 = new DataTable(); 
DataTable1.Columns.AddRange(
    new DataColumn[] { 
      new DataColumn("file", typeof(string)), 
      new DataColumn("date", typeof(DateTime)) }); 

foreach (string f in System.IO.Directory.GetFiles(@"c:\windows")) 
    DataTable1.Rows.Add(f, System.IO.File.GetCreationTime(f)); 

GridView1.DataSource = DataTable1; 
GridView1.DataBind(); 

И разметку GridView:

<asp:GridView runat="server" ID="GridView1" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:BoundField HeaderText="File" DataField="file" /> 
     <asp:TemplateField HeaderText="Date"> 
      <ItemTemplate> 
       <asp:Calendar runat="server" ID="Calendar1" SelectedDate='<%# Bind("date") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

Также вы должны прочитать больше о Calendar.SelectedDate и Calendar.VisibleDate

2

По умолчанию у вас есть только эти столбцы доступны для вас:

DataGridViewTextBoxColumn, DataGridViewCheckBoxColumn, DataGridViewImageColumn, DataGridViewButtonColumn, DataGridViewComboBoxColumn, DataGridViewLinkColumn

Если вы хотите, чтобы показать контроль DateTimePicker, то вы должны реализовать пользовательский столбец.

Проверьте это: http://msdn.microsoft.com/en-us/library/7fb61s43.aspx

Надеется, что это помогает.

Смежные вопросы