1

ヘッダーとフッターを含む 3 つの列 (製品、数量、価格) を持つグリッド ビューがあります。商品フッターのドロップダウンリストを追加しました。このドロップダウンリストをデータセットにある製品にバインドしたいのですが、誰か助けてもらえますか? csファイルで次のコードを使用しましたが、検索コントロールの近くでエラーが発生しました

"オブジェクト参照がオブジェクト インスタンスに設定されていません。

protected void gv_page2_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        dal = new DAL();
        ds = new DataSet();
        ds=dal.DALBindFooterDDL();
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            DropDownList ddl = (DropDownList)gv_page2.FooterRow.FindControl("ftrDDL");
            ddl.DataSource = ds.Tables[0];
            ddl.DataBind();
        }
    }
4

2 に答える 2

3

使用RowCreated(またはRowDataBoundイベント)-たとえば

void ProductsGridView_RowCreated(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.FooterRow)
    {
      // Find the product drop-down list, you can id (or cell number)
      var ddlProducts = e.Row.FindControl("Products") as DropDownList;
      // var ddlProducts = e.Row.Cells[0].Controls[0]; // Finding by cell number and index
      if (null != ddlProducts)
      {
          // bind to the data
      }
    }
}

免責事項:テストされていないコード-実際の解決策のアイデア/ヒントを得るために提供されています

于 2013-01-11T10:32:09.430 に答える
1
 protected void gv_page2_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        dal = new DAL();
        ds = new DataSet();
        ds=dal.DALBindFooterDDL();
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            DropDownList ddl = e.Row.FindControl("ftrDDL") as DropDownList;
            ddl.DataSource = ds.Tables[0];
            ddl.DataBind();
        }
    }
于 2013-03-08T06:36:52.640 に答える