<asp:templatefield>的目的是什么?

问题描述 投票:0回答:1

我正在检查的代码中的

HeaderTemplate
内似乎有
ItemTemplate
EditItemTemplate
TemplateField

除了
<asp:TemplateField>
HeaderTemplate
ItemTemplate
之外,
EditItemTemplate
还能存在什么?

c# asp.net c#-4.0 coding-style computer-science
1个回答
3
投票

它们实际上是一种将标准 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 控件包装在模板字段中,这可以让您定义网格的标题、对齐方式等。

© www.soinside.com 2019 - 2024. All rights reserved.