本人前几天提出了DataGrid模板列(DropDownList)动态加载数据的问题。几位朋友做了指点。非常感谢。但在尝试时遇到一个新问题。private void DGridDocQuery_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DGridDocQuery.EditItemIndex=e.Item.ItemIndex;
BindGridToSource(false);
DropDownList DDLEditMTitle=(DropDownList)e.Item.FindControl("DDLEditMTitle");
if  (DDLEditMTitle!=null)  
{  
Str="select distinct(MainTitle) from T_DocMain";
......
}
语句DropDownList DDLEditMTitle=(DropDownList)e.Item.FindControl("DDLEditMTitle");似乎没有执行或补正确。实际上DDLEditMTitle为null
为什么?

解决方案 »

  1.   

    改在ItemDataBound事件中写
    private void DGridDocQuery_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    DGridDocQuery.EditItemIndex=e.Item.ItemIndex;
    BindGridToSource(false);
    }private void DGridDocQuery_ItemDataBound(...)
    {
    if(e.Item.ItemType == ListItemType.Edit)
    {
    DropDownList DDLEditMTitle=(DropDownList)e.Item.FindControl("DDLEditMTitle");
    if  (DDLEditMTitle!=null)  
    {  
    Str="select distinct(MainTitle) from T_DocMain";
    ......
    }
    }
    }
      

  2.   


    DropDownList DDLEditMTitle=(DropDownList)e.Item[e.Item.ItemIndex].FindControl("DDLEditMTitle");试试!
      

  3.   

    非常感谢Eddie005(♂) 暴赱和Study_Now。昨天曾用Study_Now的方法试过,不行。刚才用Eddie005(♂) 暴赱的方法解决了。非常感谢。