<asp:TemplateColumn SortExpression="KC_NAM" HeaderText="课程类型">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "KSLX_NAM")%>
<FONT face="宋体"></FONT>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="Dropdownlist2"Width="100%"runat="server">asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
后台代码:public void MyDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.EditItem)
{
            DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList1");
                 DataSet Ds=hm.getkclist();
                 ddl.DataSource=Ds.Tables["My"].DefaultView;
  ddl.DataTextField="JS_NAM";
  ddl.DataValueField="JS_ID";
  ddl.DataBind();
        
 }

}这样做,可以绑定数据,但是绑定的不对,DataGrid里有5条记录,课程类型有2条记录(1必修课程,2选修课程),但是现在DropDownList1绑定的情况是:只绑定了1必修课程,并且是5条.

解决方案 »

  1.   


    试试
    for(int i = 0;i < Ds.Tables["My"].rows.count;i++)
    {
      Dlist.Items.Add(new ListItem(Ds.Tables["My"].Rows[i]["JS_NAM"].ToString(),Ds.Tables["My"].Rows[i]["JS_ID"].ToString()));
    }
      

  2.   

    DataSet Ds=hm.getkclist();
    看看这个里头的数据对不对
      

  3.   

    应该没问题的  
    DEBUG一下 hm.getkclist()里的数据吧
      

  4.   

    DataSet Ds=hm.getkclist();?????????
    所有行的绑定数据都一样???
      

  5.   

    DataSet Ds=hm.getkclist()没有问题
    在这个页面里有也有一个DropDownList的数据也是通过它帮定的,数据正确
      

  6.   

    你的问题其实就是一个简单的二级绑定   当DataGrid每次绑定生成的时候   你的下拉框也生成了5次
    而下拉框每次生成的时候  都再绑定了一次  所以你才看到你显示的那个结果  要解决这个问题  请参考思归老大在回答这个问题的方法:
    http://community.csdn.net/Expert/topic/3600/3600123.xml?temp=.9944727