2012-04-15 86 views

回答

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> 
+0

当我把 的 in ItemTemplate。 。它给我警告/错误。 怎么办? – 2012-04-15 01:32:16

+0

如果您分享了警告/错误,它可能会有所帮助。 – 2012-04-15 01:53:15

+0

您不能在同一列中使用BoundField和TemplateField。您将使用模板字段并在ItemTemplate中执行类似<%#Eval(“DataField”)%>的操作,以将数据输出到该列。 – Ricketts 2012-04-15 15:14:19

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> 
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 
    } 
}