http://www.4guysfromrolla.com/webtech/050801-1.shtml

解决方案 »

  1.   

    <asp:TemplateColumn SortExpression="Country" HeaderText="Country">
    <ItemTemplate>
    <asp:label id=lblCounty2 runat="server" Text='<%# DataBinder.Eval(dataSet11, "Tables[Employees].DefaultView.[0].Country", "{0}") %>'>
    </asp:label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:dropdownlist id=lstCounty runat="server" DataSource="<%# dataSet11 %>" DataMember="Employees" DataTextField="Country" AutoPostBack="True">
    <asp:ListItem Value="中国">中国</asp:ListItem>
    <asp:ListItem Value="美国">美国</asp:ListItem>
    </asp:dropdownlist>
    </EditItemTemplate>
    </asp:TemplateColumn>
      

  2.   

    要把那列变成模版列,在加dropdownlist就行了(注意要写上id,这样在模版列才能找到)
    我的dropdownlist是帮定的数据private void Grid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    int i=e.Item.ItemIndex;

    if (i >= 0)
    {
    SqlConnection sqlconnHR=new SqlConnection(Check_sConn.Value);
    string sPerson="SELECT kqjg FROM Rs_kqjg ORDER BY mrbs DESC";
    SqlDataAdapter sqldaHR=new SqlDataAdapter(sPerson,sqlconnHR);
    DataSet dsData=new DataSet();
    sqldaHR.Fill(dsData);
    //绑定dropdownlist
    try
    {
    ((DropDownList)e.Item.Cells[8].FindControl("dlsResult1")).DataSource=dsData.Tables[0].DefaultView;
    ((DropDownList)e.Item.Cells[8].FindControl("dlsResult1")).DataTextField="kqjg";
    ((DropDownList)e.Item.Cells[8].FindControl("dlsResult1")).DataBind();
    }
    catch{}
    }
    //设置编辑时textbox长度
    if(e.Item.ItemType==ListItemType.EditItem)
    {
    ((TextBox)e.Item.Cells[6].Controls[0]).Width=Unit.Pixel(100);
    ((TextBox)e.Item.Cells[6].Controls[0]).CssClass="tabstringtextbox";
    ((TextBox)e.Item.Cells[7].Controls[0]).Width=Unit.Pixel(100);
    ((TextBox)e.Item.Cells[7].Controls[0]).CssClass="tabstringtextbox";
    ((TextBox)e.Item.Cells[9].Controls[0]).Width=Unit.Pixel(100);
    ((TextBox)e.Item.Cells[9].Controls[0]).CssClass="tabstringtextbox";
    }
    }