在datagrid 控件中的TemplateColumn里面使用了,EditItemTemplate下面的,
DropDownList中的内容如何从数据库中取得啊?

解决方案 »

  1.   

    ctype(e.item.cells(0).findcontrol("dropID"),dropdownlist).datasource=
    ctype(e.item.cells(0).findcontrol("dropID"),dropdownlist).datameber=
    ctype(e.item.cells(0).findcontrol("dropID"),dropdownlist).databind()
      

  2.   

    哦,这些代码我写在DataGrid_EditCommand中可以吗?
      

  3.   

    在DataGrid_EditCommand事件中,这样写,DropDownList DDLRol_id = (DropDownList)e.Item.FindControl("DDLRol_id");
    可是返回的DDLRol_id 值为null为什么啊?
      

  4.   

    datagrid.editindex=1
    datagrid.datasource=
    datagrid.databind()在你出现绑定列后才能找的到,
      

  5.   

    一般在ITEMCOMMAND中写判断一下
    E。COMMANDNAME=“EDIT”
      

  6.   

    晕,想是想到了,但是又出现别一问题,
    我用一个string数组,
    <asp:DropDownList Runat="server" ID="DDLRol_id" DataSource ='<%#strRole%>' ></asp:DropDownList>
    这样,然后,DropDownList中的,option value="系统管理员" 其中的value没有办法设置
      

  7.   

    在DataGrid_EditCommand事件中,这样写,DropDownList DDLRol_id = (DropDownList)e.Item.FindControl("DDLRol_id").Text;
    可是返回的DDLRol_id 值为null为什么啊?
      

  8.   


    Text?没有此属性啊?你写错了吧?
      

  9.   

    to rickjelly2004(rick & jelly):
    这样吗?还是无法获得啊?返回值还是为0
    private void DataGridStaff_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if(e.CommandName =="Edit")
    {
    DropDownList DDLRol_id = (DropDownList)e.Item.FindControl("DDLRol_id");
    }
    }
      

  10.   

    1.找到DropDownList用e.Item.Cells[n].FindControl("..");
    n是所在列
    2.让DropDownList从数据库取数据应该放在ItemDataBound事件里
    ListItemType itemType = e.Item.ItemType;
    if(itemType==ListItemType.EditItem){
       //先FindControl,然后设置数据源,绑定
    }
    3.在EditCommand事件里
    yourDataGrid.EditItemIndex = e.Item.ItemIndex