先把dropdownlist绑定数据。
然后private void Grid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.Item.ItemType != ListItemType.EditItem)
_ProductCode = ((Label)e.Item.Cells[6].Controls[1]).Text; }
其中_ProductCode 为全局变量。
接下来:
private void Grid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.EditItem)
{
DropDownList drop = (DropDownList)e.Item.Cells[6].Controls[1];
for(int i=0; i<drop.Items.Count; i++)
{
if(drop.Items[i].Text.Equals(_ProductCode))
{
drop.Items[i].Selected = true;
return;
}
}
} }

解决方案 »

  1.   

    页面上的DataGrid增加一个模板列:
    <asp:TemplateColumn HeaderText="父类别">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.父类别") %>' ID="Label6">
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:DropDownList id="ddlParent" runat="server" Width="80"></asp:DropDownList>
    </EditItemTemplate>
    </asp:TemplateColumn>
    在后台代码里面的DataGrid的ItemDataBound事件里:
    if (e.Item.ItemType == ListItemType.EditItem )
    {
    string sParentType=(string)DataBinder.Eval(e.Item.DataItem, "父类别");
    DropDownList ddlParentType=(DropDownList)e.Item.FindControl("ddlParent"); ddlParentType.DataTextField="sTypeName";
    ddlParentType.DataValueField="nTypeID";
    ddlParentType.DataSource=stockinfo.getParentType();
    ddlParentType.DataBind(); ddlParentType.Items.FindByText(sParentType).Selected=true;
    }