我有一个gridview并将其绑定到具有未知列的数据源。
当我简单地将它绑定到数据网格时,所有工作都会找到并且所有工作都被绑定。
但我无论如何都无法根据价值来处理列。
我发现我可以这样做:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
DateTime x;
var res =DateTime.TryParse(e.Row.Cells[i].Text,out x);
if (res)
{
TextBox text = new TextBox();
text.Text = e.Row.Cells[i].Text;
e.Row.Cells[i].Controls.Clear();
e.Row.Cells[i].Controls.Add(text);
}
}
}
但那非常丑陋
有什么方法可以创建DateTime到Textbox转换器并告诉我的datagrid使用它进行数据绑定?
我稍后会将控件从textbox更改为datepicker,这只是测试模式..
答案 0 :(得分:0)
在非常非常基本的数据绑定方案之外,您会发现需要关闭AutoGenerateColumns
,为许多(或大多数)列设置TemplateField
元素,并使用{ {3}}事件。
我很遗憾你发现这个模式很丑陋,但是自动生成会做到这一点,而不是更多;当网格处理创建列并为您布线值时,您无法控制值。