我正在检查的代码中的
HeaderTemplate
内似乎有ItemTemplate
和EditItemTemplate
和TemplateField
。<asp:TemplateField>
和HeaderTemplate
和ItemTemplate
之外,EditItemTemplate
还能存在什么?
它们实际上是一种将标准 ASP.NET 控件“插入”到相当多的数据感知控件中的方法。
因此,GridView、Datagrid、Repeater 等需要此功能才能允许插入标准控件进行渲染。
因此,对于 GridView,您可以放入plane jane asp.net 控件,但要做到这一点,您需要将这些plane jane 控件包装在所谓的“模板”中。
因此,对于网格,您可能会看到以下内容:
注意简单复选框的模板字段。所以,当我们运行这个时,我们得到这个:
因此,模板具有“HeaderText”等功能
但是,如果你使用更新的ListView呢?那么你就不需要使用模板字段,如果你只有几个模板字段,那么 GridView 就可以了。但是,如果您说您想要在该网格中添加大量 ASP.NET 控件,那么我更喜欢 ListView。
因此,此模板字段可让您定义标题文本、格式、对齐方式等。
例如,上面的复选框看起来不太好。 (不居中等)。
<asp:BoundField DataField="HotelName" HeaderText="HotelName" />
<asp:TemplateField HeaderText="Active" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"
Checked='<%# Eval("Active") %>' />
</ItemTemplate>
</asp:TemplateField>
现在我们得到了这个:
因此,对于数据重复器、DataView、GridView 等,它们都内置了数据绑定控件(BoundField),但通常我们希望使用下拉列表、图片或标记中的其他控件等控件- 因此您必须将每个平面 jane asp.net 控件包装在模板字段中,这可以让您定义网格的标题、对齐方式等。