我做了一个datagrid,有四列:
学号  姓名  专业   专业方向也就是说专业方向这一列我根据专业这一列的值来绑定专业方向这一列的值.主要是在编辑的时候出现一个checkboxlist的多选框,用专业一列的值去读取数据库中对应专业的专业方向,并绑定到checkboxlist中去!高手帮忙!

解决方案 »

  1.   

    把专业方向做成模板列,正常是标签,编辑时为下接列表
    在EditCommand事件中
    根据
    ((TextBox)(e.Cells[2].Controls[0])).Text的值查数据库得到DataTable/DataSet向((CheckboxList))(e.Cells[3].Controls[0])).DataSource绑定
    指定相关呈现、取值字段
    再((CheckboxList))(e.Cells[3].Controls[0])).DataBind()不过有一个问题,专业列最好只读
    这样才好办
    这时第3列的值这样取:e.Cells[2].Text
      

  2.   

    myDatagrid.EditItemIndex=e.Item.ItemIndex;
    System.Web.UI.WebControls.Label La=new  Label();
    La=(Label)(e.Item.FindControl("PR"));
    string Profession=La.Text;
    //Response.Write(Profession+"df");
    //Response.Write(e.Item.Cells[6].Controls[0]);
    System.Data.SqlClient.SqlDataAdapter Sqladapter=new SqlDataAdapter("select direction from profession_direction where profession='"+Profession+"' group by profession,direction",Objconn);
    DataTable myTable1=new DataTable();
    Sqladapter.Fill(myTable1);
    ((CheckBoxList)(e.Item.FindControl("profession_direction"))).DataSource=myTable1; ((CheckBoxList)(e.Item.FindControl("profession_direction"))).DataBind();
    grid_bind();下面这一句错误:
    ((CheckBoxList)(e.Item.FindControl("profession_direction"))).DataSource=myTable1.Columns;
    未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
      

  3.   

    ((CheckBoxList)(e.Item.FindControl("profession_direction"))).Items.Add("zhou");这样根本就添加不上去,
    未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。各位高手显灵啦!