请问:我在DataGrid控件中的一列上绑定了一个DropDownList控件,并为这个控件设置了数据源,这样,DataGrid中每一行都会出现DropDownList控件,但是这样显示的DropDownList控件每行绑定的都是一样的数据,也就是说在每行单击下拉列表显示的数据都是一样的,怎么才能让每行显示的下拉列表控件不一样,再有怎么为每个DropDownList控件添加事件。

解决方案 »

  1.   

    数据源要不同,具体点可能是你的数据源产生时sql语句加上类似  where id=“该行的id”
      

  2.   

    既然这样,你为什么要用dropdownlist来绑呢?
      

  3.   

    可以试用dropdownlist.item.findbytext显示数据不一样
      

  4.   

    我也不知道,我能想到的就是在每次用户点下拉按纽的时候重新绑定dropdownlist,这样用户看来就像每一行的内容不一样的,但如果你的数据量大的话速度会非常慢的,因为要重新绑定datagrid。另一种方法就是放弃用datagrid,直接在客户端动态生成table
      

  5.   

    我是说DropDownlist控件中的下拉列表的内容每行都不一样,也就是说这一列的各个DropDownList控件绑定的是不同的数据源。
    在绑定DropDownList控件的时候,我分配了一个ID,怎么在后台代码中得到这个ID
      

  6.   

    需要绑定不同的数据,你可以在后台代码中实现
    for(int i=0;i<this.DataGrid1.Items.Count;i++)
    {
    //获取当前行的主键值
    string keyid = this.DataGrid1.DataKeys[i].ToString();
    DropDownList mylist = (DropDownList)this.DataGrid1.Items[i].FindControl("控件ID");
    //根据不同的情况形成SQL
    sql = "select * from table1 where id = " + keyid;
    //求取数据
    ....
    mylist.DataSource = 根据SQL求取的数据;
    mylist.DataBind();
    }