0

我有一个 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 转换器并告诉我的数据网格将它用于数据绑定?

稍后我将把控制从文本框更改为日期选择器,这只是测试模式..

4

1 回答 1

0

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

很抱歉,您发现该模式很难看,但自动生成只会这样做,仅此而已;当网格为您处理创建列和连接值时,您无法控制这些值。

于 2012-12-23T15:21:18.207 回答