1

在我的应用程序中,我正在动态创建行和列。我创建了 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 的新手。
谢谢。

4

3 回答 3

2

默认情况下,您只有以下可用列:

DataGridViewTextBoxColumn、DataGridViewCheckBoxColumn、DataGridViewImageColumn、DataGridViewButtonColumn、DataGridViewComboBoxColumn、DataGridViewLinkColumn

如果要显示 datetimepicker 控件,则必须实现自定义列。

看看这个:http: //msdn.microsoft.com/en-us/library/7fb61s43.aspx

希望这可以帮助。

于 2010-03-19T12:36:59.290 回答
1

使用 gridview 的项目模板并在那里放置一个 datetimepicker。一个很好的例子是here

为了实现它,您必须实现ITemplate接口。

另一个例子是这个

此 msdn 文章中给出了它的简单实现。但代码在 VB.net 中。

于 2010-03-09T09:22:48.363 回答
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.SelectedDateCalendar.VisibleDate的更多信息

于 2010-03-09T09:58:17.657 回答