【问题标题】:Custom datatable with metadata used for binding to a Gridview?带有用于绑定到 Gridview 的元数据的自定义数据表?
【发布时间】:2010-09-21 07:41:27
【问题描述】:
我将一个数据表绑定到一个 gridview 控件,当我格式化每一列时,我需要根据该列是否具有特定的自定义属性来格式化数据。在这种情况下,一列可以表示:
- 一个文本框(在这种情况下,我只是在 gridview 中显示文本框中的文本),
- 一个复选框(在这种情况下,我会根据列的基础数据值是 1 还是 0 显示“选中”或“未选中”),
- 一个单选按钮(在这种情况下,我会根据列的基础数据值是 1 还是 0 来显示“开”或“关”)。
问题是列数据类型是当前绑定到网格的无类型数据表中的所有字符串。并且绑定使用 autoGenerateColumns。所以:
- 如何将列标记为单选、文本框或复选框?
- 如何在绑定到网格以显示文本“选中/未选中”或“开/关”时访问该“标志”?
我希望我问对了。呸!
【问题讨论】:
标签:
gridview
dynamic
binding
datatable
typed
【解决方案1】:
好的 - 我用正确的数据类型向 DataTable 列添加了扩展属性,并在 1..numColumns 的循环中在 GridView 的 RowDataBound 事件中检查了它们:
myProperty=e.Row.DataItem.dataview.table.columns(i).extendedproperties("TYPE")
并根据类型设置值(e.Row.Cells(i).Text)。
【解决方案3】:
我对模板字段没问题;我不知道如何将元数据添加到我可以在 GridView 数据绑定期间读取的数据表列中。例如。当我绑定到具有复选框数据的列时,我想在列中添加单词“Checked”或“Unchecked”,但我需要以某种方式注释我的数据表,使其包含列数据类型。