参考:
http://chs.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/aspplus/samples/webforms/data/datagrid8.src

解决方案 »

  1.   

    letian(你快乐,所以我快乐) 这个我看过了,他的下拉列表中的数据项是做死的,不是跟那个字段绑定的
      

  2.   

    <asp:TemplateColumn HeaderText="genre (database)">
       <ItemTemplate>
          <asp:Label id=Label1 runat="server" 
              Text='<%# DataBinder.Eval(Container, "DataItem.genre") %>'>
          </asp:Label>
       </ItemTemplate>
       <EditItemTemplate>
          <asp:DropDownList id=DropDownList1 runat="server"
             DataSource="<%# GetGenreTable() %>"
             DataMember="Genre" 
             DataTextField="genre" 
             DataValueField="genre" 
             Width="120px">
         </asp:DropDownList>
       </EditItemTemplate>
    </asp:TemplateColumn>cspublic DataTable GetGenreTable()
    {
       DataTable dtGenre = new DataTable();
       if(Application["GenreTable"] == null)
       {
          DataRow dr;
          DataColumn dc = new DataColumn("genre");
                   dtGenre.Columns.Add(dc);
          this.sqlConnection1.Open();
          System.Data.SqlClient.SqlDataReader dreader = 
              this.sqlCommand1.ExecuteReader();
          while(dreader.Read())
          {
              dr = dtGenre.NewRow();
             dr[0] = dreader[0];
             dtGenre.Rows.Add(dr);
          }
          this.sqlConnection1.Close();
       }
       else
       {
          dtGenre = (DataTable) Application["GenreTable"];
       }
       return dtGenre;
    }
      

  3.   

    letian(你快乐,所以我快乐) 你的代码我看了,应该可以实现跟字段绑定的效果,不过你这样实现是不是过于复杂了,没有简单的直接绑定的方法吗?还有你这样好像不能够显示本字段已经选择的数据项
      

  4.   

    显示本字段已经选择的数据项private void DataGrid1_ItemDataBound(object sender, 
          System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
       if(e.Item.ItemType == ListItemType.EditItem){
          DataRowView drv = (DataRowView) e.Item.DataItem;
         String currentgenre = drv["genre"].ToString();
         DropDownList ddl = 
            (DropDownList) e.Item.FindControl("DropDownList1");
         ddl.SelectedIndex = 
             ddl.Items.IndexOf(ddl.Items.FindByText(currentgenre));
       }
    }
      

  5.   

    letian(你快乐,所以我快乐) 你真厉害