none
gridview1嵌套gridview2,在gridview2中使用dropdownlist问题。 RRS feed

  • 问题

  • 我在gridview2的GridView2_RowDataBound事件中,如下代码:
            //为DropDownList预算科目绑定值
            if (((DropDownList)e.Row.FindControl("addbodstitle")) != null)
            {
              
                DropDownList addbodstitle = (DropDownList)e.Row.FindControl("addbodstitle");

                addbodstitle.Items.Clear();
                //科目类别list修改更新使用
                SqlConnection modelsc = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DinfoConnectionString"].ToString());
                string modelsql = "SELECT DISTINCT bsparentcode FROM Dinfo_BudgetSubject  WHERE bscntitle='" + ((DataRowView)GridView1.FooterRow.DataItem)["bocnclass"].ToString() + "   ORDER BY bscntitle";
                SqlDataAdapter msda = new SqlDataAdapter(modelsql, modelsc);
                modelsc.Open();
                DataSet modeldt = new DataSet();
                msda.Fill(modeldt, "MyTable");

                addbodstitle.AppendDataBoundItems = true;
                addbodstitle.Items.Add(new ListItem("---请选择---", "0"));
                addbodstitle.DataSource = modeldt.Tables["MyTable"].DefaultView;
                addbodstitle.DataTextField = "bscntitle";
                //DropDownList1.DataValueField = "MC001";
                addbodstitle.DataBind();
                modelsc.Close();

                //  选中 DropDownList
                addbodstitle.SelectedValue = ((HiddenField)e.Row.FindControl("bodstitle")).Value;

            }

    想得到gridview1中某一列的值做为条件来取得gridview2中dropdownlist值。
    但每次运行至粗体代码时报错:用户代码未处理 System.NullReferenceException
      Message="未将对象引用设置到对象的实例。"

    我该怎样做呢?请赐教!!

    2009年7月22日 8:34

答案

  • 您好,应从gridview1中的某一行的某一列为条件。
    不用GridView1的FooterRow属性,这个属性不是用来获得行数据的。
    改为GridView1.Rows[index].Cells[cIndex];
    其中index是GridView1中指定的行索引值;cIndex是指定的列索引。
    2009年7月22日 11:20