Html:
<asp:TemplateColumn HeaderText="CategoryID">
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem,"CategoryID")%>' Font-Name="楷体" runat="server" ID="Label2"/>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="dpl_CategoryName" Runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
--------------------------------------------------------------------------
CS:
public void dataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) 


        
          
if(e.Item.ItemType==ListItemType.EditItem) 
{   
SqlConnection conn= new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
string strDrp_CategoryName="select * from Categories";
SqlCommand cmd=new SqlCommand(strDrp_CategoryName,conn);
SqlDataReader dtr;
DropDownList drp_test=(DropDownList)e.Item.FindControl("dpl_CategoryName");
conn.Open();
dtr=cmd.ExecuteReader();
drp_test.DataSource=dtr;
drp_test.DataTextField="CategoryName";
drp_test.DataBind();
drp_test.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"CategoryName"))).Selected=true;
conn.Close();
Response.Write(drp_test.SelectedValue.ToString());
             } 
}

解决方案 »

  1.   

    conn.close();
    是不是关了,就没有连接了。
      

  2.   

    报错信息你没写  想应该是这段drp_test.DataSource=dtr;
    drp_test.DataTextField="CategoryName";
    drp_test.DataBind();
    drp_test.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"CategoryName"))).Selected=true;
    你只指定了 ddl 的 DataTextField = “CategoryName”;
    但是指定选定框  却这么写  drp_test.Items.FindByValue   肯定不行 还有,  codebehind里能写DataBinder.Eval()?    我孤陋寡闻了  还有, 在DropDownList.Items.FindByValue("something").Selected = true;前
    最好是 DropDownList.SelectedIndex = -1   一下还有
      

  3.   

    呵,对不起各位我忘记了写问题原因了
    问题就是:
    在dropdownlist里面没有数据,一个空的dropdownlist
    至于
    drp_test.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"CategoryName"))).Selected=true;
    是应该没有问题的
      

  4.   

    呵,对不起各位我忘记了写问题原因了
    问题就是:
    在dropdownlist里面没有数据,一个空的dropdownlist
      

  5.   

    问题解决了
    呵呵,是我自己粗心了
    忘记了申明OnItemDataBound事件了
    呵呵,谢谢各位