C # как отобразить элемент управления datetimepicker для всех строк gridview - PullRequest
1 голос
/ 09 марта 2010

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

Я создал столбец, используя

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


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

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

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

РЕДАКТИРОВАТЬ: Пожалуйста, предоставьте фрагмент кода.Я новичок в C # .net.
Спасибо.

Ответы [ 3 ]

2 голосов
/ 19 марта 2010

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

DataGridViewTextBoxColumn, DataGridViewCheckBoxColumn, DataGridViewImageColumn, DataGridViewButtonColumn, DataGridViewComboBoxColumn, DataGridViewLinkColumn

Если вы хотите показать элемент управления datetimepicker, вам нужно реализовать пользовательский столбец.

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

Надеюсь, это поможет.

1 голос
/ 09 марта 2010

используйте шаблон элемента вида сетки и разместите там указатель даты и времени. Хороший пример: здесь

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

Другой пример: this

Простая реализация этого дана в этой статье MSDN . Но код есть в VB.net.

0 голосов
/ 09 марта 2010

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>

Также вам нужно узнать больше о Календарь. Выбранная дата и Календарь. Видимая дата

...