1

コードビハインド、

オブジェクト参照がオブジェクトのインスタンスに設定されていませんというエラーが表示されます。

protected void GridView1_RowDataBound(オブジェクト送信者、GridViewRowEventArgs e) {

        if (e.Row.RowType == DataControlRowType.DataRow)
        {

          string  a = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "item_id")) ;
          string b = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "order_id"));
            Label lbl = (Label)GridView1.FindControl("Label5");

                int sum = int.Parse(a) + int.Parse(b);
                lbl.Text += sum.ToString();

        }
    }
4

3 に答える 3

1

Label lbl = (Label)GridView1.FindControl("Label5");これをOnDataBoundイベントに書き込みます。

于 2012-11-29T11:09:53.303 に答える
1

コントロールの場所に基づいて、次のLabel52 つの可能性があります。

  1. ラベルがコレクションに追加されている場合Gridview1.Controlsは、次の方法でアクセスできるはずです。

    void GridView1_PreRender(object sender, EventArgs e)
    {
        Label lbl = (Label)GridView1.FindControl("Label5");
    
    }
    
  2. たとえば、次のように、各行にラベルが追加されている場合:

    void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        var label = new Label();
        label.ID = "Label5";
        label.Text = "label";
        var cell = new TableCell();
        cell.Controls.Add(label);
        e.Row.Controls.Add(cell);
    }
    

    GridView1_RowDataBoundメソッドでラベルを見つけるには、次を使用する必要があります。

    e.Row.FindControl("Label5");
    
于 2012-11-29T10:42:56.227 に答える