我在ItemDataBound和ItemCreated用
DropDownList NewMachineTable=(DropDownList)e.Item.FindControl("NewMachineTable");
都找不到啊!!!

解决方案 »

  1.   

    Footer中的控件是不能在Item中找的,试试
    DropDownList NewMachineTable=(DropDownList)DataGrid1.FindControl("NewMachineTable");
      

  2.   

    ItemDataBound事件中:
    if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
         DropDownList NewMachineTable=(DropDownList)e.Item.FindControl("NewMachineTable");
    }
      

  3.   

    是否检查了ItemListType么?
    你在将DropDownList放在DataGrid的Pager里面前先Remove里面的所有的控件,然后再使用e.Item.FindControl查找。
      

  4.   

    这样也可以:
    if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
         DropDownList NewMachineTable=(DropDownList)e.Item.Cells[i].Controls[j];
    }i:下拉框所在的列数;
    j:下拉框所在单元容器中的序号
      

  5.   

    已经好了,但我不知怎么好的。:( if(e.Item.ItemType == ListItemType.Footer )
    {
    DropDownList NewMachineTable = (DropDownList)e.Item.FindControl("NewMachineTable");
    NewMachineTable.DataSource=ds_temp.Tables["T_PickMachineTable"];
    NewMachineTable.DataTextField="V_TableNo";
    NewMachineTable.DataValueField="V_TableNo";
    NewMachineTable.DataBind();
    NewMachineTable.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"V_TableNo"))).Selected=true;//选择数据库内的作为默认 DropDownList NewTeam = (DropDownList)e.Item.FindControl("NewTeam");
    NewTeam.DataSource=ds_temp.Tables["T_PickTeam"];
    NewTeam.DataTextField="V_team";
    NewTeam.DataValueField="V_team";
    NewTeam.DataBind();
    NewTeam.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"V_team"))).Selected=true;//选择数据库内的作为默认 DropDownList NewTeamOrder = (DropDownList)e.Item.FindControl("NewTeamOrder");
    NewTeamOrder.DataSource=ds_temp.Tables["T_PickTeamOrder"];
    NewTeamOrder.DataTextField="V_teamOrder";
    NewTeamOrder.DataValueField="V_teamOrder";
    NewTeamOrder.DataBind();
    NewTeamOrder.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"V_teamOrder"))).Selected=true;//选择数据库内的作为默认