没这么夸张吧,论坛里有N多这个问题的帖子。在DataGrid的ItemDataBound事件里:
if (e.Item.ItemType == ListItemType.EditItem)
{
  DropDownList list = (DropDownList)e.Item.FindControl("DropDownList1");
  list.SelectedIndex = list.Items.IndexOf(list.Items.FindByValue("aaa"));   //选择value为aaa的选项
}

解决方案 »

  1.   

    DropDownList cboSelect = (DropDownList)e.Item.FindControl("cboEditInventoryID");
    行 999: cboSelect.SelectedIndex = cboSelect.Items.IndexOf(cboSelect.Items.FindByValue("a12345678"));   未将对象引用设置到对象的实例。 
      

  2.   

    DataGrid的EditTemplate里有没有cboEditInventoryID这个控件呀?
      

  3.   

    有啦,她就是一个 DropDownList
      

  4.   

    if(list!=null)list.SelectedIndex = ....
      

  5.   

    再请教:
    cboSelect.Items.FindByText(sText)
    我的sText是从当前行的一列得到的,要怎么写?
      

  6.   

    如果那列是模板列,就用FindControl找到TextBox控件,然后再访问这个控件:
    string sText = ((TextBox)e.Item.FindControl("TextBox1")).Text;
    如果是绑定列,可以用控件索引来访问:
    string sText = ((TextBox)e.Item.Cells[0].Controls[0]).Text;