操作AutoGenerated列

时间:2012-12-23 15:19:01

标签: c# asp.net gridview

我有一个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,这只是测试模式..

1 个答案:

答案 0 :(得分:0)

在非常非常基本的数据绑定方案之外,您会发现需要关闭AutoGenerateColumns,为许多(或大多数)列设置TemplateField元素,并使用{ {3}}事件。

我很遗憾你发现这个模式很丑陋,但是自动生成会做到这一点,而不是更多;当网格处理创建列并为您布线值时,您无法控制值。