我正在动态构建一个 GridView,我想预先定义要按需包含的 TemplateFields。所以,我想做的是有一个声明性文件,它定义不同模板如何查找特定列。喜欢:
<asp:TemplateField>
<HeaderTemplate>
this is a text column
</HeaderTemplate>
<ItemTemplate>
data goes here
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text="databindhere" />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
this is a bool column
</HeaderTemplate>
<ItemTemplate>
if(true) "yes" else "no"
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox Checked="databindme" />
</EditItemTemplate>
</asp:TemplateField>
因此,如果我的查询有一个文本和两个布尔字段,我可以根据需要在 Columns 属性中推送适当的 TemplateFields。(我希望我在这里有意义)
那么,我将如何为上述定义创建声明性文件?然后,我将如何以编程方式引用这些定义?
好的,最好的方法是继承 System.Web.UI.WebControls.TemplateField,但是当我这样做时,我似乎无法将对象与 <%@ Register %> 指令一起使用。如果可以的话,我会使用新的衍生工具创建一些用户控件,然后根据需要将它们加载到网格的列中。
有任何想法吗?