我使用GridView从数据源获取数据。 我想在GridView的每列末尾添加一个文本框,即页脚 我该怎么做?
答案 0 :(得分:0)
使用FooterTemplate
。例如:
<asp:TemplateField>
<ItemTemplate>
...
</ItemTemplate>
<FooterTemplate>
your textboxes go here
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
...
</ItemTemplate>
<FooterTemplate>
your textboxes go here
</FooterTemplate>
</asp:TemplateField>
答案 1 :(得分:0)
您应该了解BoundField和TemplateField类之间的差异。第一个用于将字段显示为文本,而在TemplateField中,您可以自定义显示信息的方式。所以,你应该在一个列中使用BoundField 或 TemplateField(而不是一个嵌套在另一个中,因为我认为你正在尝试),在你的情况下它必须是TemplateField,因为你想自定义方式你的页脚出现了。所以,它应该是这样的:
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblNumber" runat="server" Text='<%# Bind("Number")%>' />
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txb" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
答案 2 :(得分:0)
在<FooterTemplate>
<asp:TemplateField HeaderText="UnitsInStock">
<ItemTemplate>
//your displaying control
</ItemTemplate>
<FooterTemplate>
<asp:TextBox id="tb1" Text="Text" runat="server" />
</FooterTemplate>
</asp:TemplateField>
在RowDataBound事件中查找页脚控件:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Footer)
{
TextBox tb1 = (TextBox)e.Row.FindControl("tb1");
//do your stuff
}
}