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());
}
}
<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());
}
}
是不是关了,就没有连接了。
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 一下还有
问题就是:
在dropdownlist里面没有数据,一个空的dropdownlist
至于
drp_test.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"CategoryName"))).Selected=true;
是应该没有问题的
问题就是:
在dropdownlist里面没有数据,一个空的dropdownlist
呵呵,是我自己粗心了
忘记了申明OnItemDataBound事件了
呵呵,谢谢各位