2

私のページのロードメソッド内で、テンプレートフィールドのテキストボックスを値に設定したいと考えています。

テンプレート フィールドのテキスト ボックス項目「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>

そして、これは私が TextBox 値を設定しようとしている方法です:

 string cartQty = Qty.ToString();

 ((TextBox)(FindControl("txtQuan"))).Text = cartQty;

現在、「nullRefernceException エラー」が発生しています。

4

2 に答える 2

5

これを行うには、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";    
    }   
  }
于 2013-03-29T03:20:32.343 に答える
2
((TextBox)grdviewId.Row.FindControl("txtQuan")).Text=cartQty;
于 2013-03-29T02:57:36.747 に答える