我正在使用 GridView 从数据源获取数据。我想在 GridView 的每一列的末尾添加一个文本框,即在页脚处我该怎么做?
问问题
880 次
3 回答
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>
于 2012-04-15T04:28:48.007 回答
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>
于 2012-04-15T00:50:16.153 回答
0
在中添加文本框<FooterTemplate>
<asp:TemplateField HeaderText="UnitsInStock">
<ItemTemplate>
//your displaying control
</ItemTemplate>
<FooterTemplate>
<asp:TextBox id="tb1" Text="Text" runat="server" />
</FooterTemplate>
</asp:TemplateField>
在 OnRowDataBound 事件中查找页脚控件:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Footer)
{
TextBox tb1 = (TextBox)e.Row.FindControl("tb1");
//do your stuff
}
}
于 2012-04-15T04:33:07.783 回答