在我的应用程序中,我动态创建行和列。我创建了一个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的新手。
感谢。
答案 0 :(得分:2)
默认情况下,您可以使用以下列:
DataGridViewTextBoxColumn,DataGridViewCheckBoxColumn,DataGridViewImageColumn,DataGridViewButtonColumn,DataGridViewComboBoxColumn,DataGridViewLinkColumn
如果要显示datetimepicker控件,则必须实现自定义列。
检查出来:http://msdn.microsoft.com/en-us/library/7fb61s43.aspx
希望这有帮助。
答案 1 :(得分:1)
使用gridview的项目模板并在其中放置datetimepicker。一个很好的例子是here
要实现它,您必须实现ITemplate
接口。
另一个例子是this
this msdn article中给出了一个简单的实现方法。但是代码是在VB.net中。
答案 2 :(得分: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