设置GridView模板字段中的文本框值

本文关键字:文本 字段 GridView 设置 | 更新日期: 2023-09-27 18:06:20

在我的页面的load方法中,我想将Textbox中的templatefield设置为一个值。

这是我当前的源代码显示我的模板字段文本框项目'txtQuan':

    <asp:TemplateField>
              <ItemTemplate>
              <asp:Label ID="lblTotalRate" Text="Qty:" runat="server" />
              <asp:TextBox ID="txtQuan" Height="15" Width="30" runat="server" />
              <asp:Button ID="addButton" CommandName="cmdUpdate" Text="Update Qty"  OnClick="addItemsToCart_Click" runat="server" />
             </ItemTemplate>
             </asp:TemplateField>

我是这样设置文本框的值的:

 string cartQty = Qty.ToString();
 ((TextBox)(FindControl("txtQuan"))).Text = cartQty;

我目前收到一个'nullRefernceException错误'。

设置GridView模板字段中的文本框值

使用RowDataBound事件来完成此操作。你可以在网上查一下。该事件处理程序的参数使您可以轻松访问每一行。还可以使用var rows = myGridView.Rows

循环遍历行
var rows = myGridView.Rows;
foreach(GridViewRow row in rows)
{
    TextBox t = (TextBox) row.FindControl("txtQuan");
    t.Text = "Some Value";
}

对于事件:GridView RowDataBound

  protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
  {
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        TextBox t = (TextBox) e.Row.FindControl("txtQuan");
        t.Text = "Some Value";    
    }   
  }
((TextBox)grdviewId.Row.FindControl("txtQuan")).Text=cartQty;