可以绑定方法:
DataSet ListBind()
{
  //dropdownlist的数据源
   return 数据源
}dropdownlist做如下绑定:
DataSource="<%#ListBind()%>"

解决方案 »

  1.   

    如果是预先绑定的话,你先把dropdownlist控件绑定完数据后,再将其绑定到datagrid模板列中就行了。如果是在.cs文件中写代码绑定的话,楼上的方法就可以了。
      

  2.   

    可是怎么把dropdownlist绑定到datagrid呢?
      

  3.   

    <asp:TemplateColumn>里把dropdownlist寫在<EditItemTemplate>中
    像這樣:
    <asp:TemplateColumn SortExpression="BU別" HeaderText="BU別">
    <ItemTemplate>
    <asp:Label Runat="server">
    <%# DataBinder.Eval(Container.DataItem, "BU別") %>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:DropDownList Width=90 Runat=server  DataSource='<%# BindBU(DataBinder.Eval(Container.DataItem, "BU別").ToString())%>' SelectedIndex='<%# BindBU1(DataBinder.Eval(Container.DataItem, "BU別").ToString())%>' DataTextField="name" DataValueField="buid" ID=dllBU />
    </EditItemTemplate>
    </asp:TemplateColumn>你需要定義這兩個函數
    public DataSet BindBU(string ss)
    {
    string butxt="SELECT name,buid FROM BU";
    SqlDataAdapter sda3=new SqlDataAdapter(butxt,s.pcConn);
    DataSet ds3=new DataSet();
    sda3.Fill(ds3,"BU");
                return ds3;
    }    public int BindBU1(string ss)
    {
    string butxt1="SELECT buid,name FROM BU";
    SqlCommand myCommand2= new SqlCommand(butxt1, s.pcConn);
    myCommand2.Connection.Open();
    SqlDataReader dr = myCommand2.ExecuteReader();
    int i=0;
    while(dr.Read())
    { if(dr.GetValue(1).ToString()==ss)break;
    i++;
         }
                myCommand2.Connection.Close();
    return i;
    }   
    大概是這樣,可能寫的有點笨:),這是我剛才開始學的時候寫的.
      

  4.   

    绑定数据我已经解决了,但奇怪的是我没法引用我在模板中定义的dropdownlist控件,有没有人能告诉我为什么?!系统报错:未将对象引用设置到对象的实例。我实在是晕了!!!