将文本框添加到Gridview

时间:2012-04-15 00:34:58

标签: asp.net

我使用GridView从数据源获取数据。 我想在GridView的每列末尾添加一个文本框,即页脚 我该怎么做?

3 个答案:

答案 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>

中添加TextBox
<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 
   } 
}