这是一个在DataGrid 中 动态邦定 DropDownList 的代码。 救命
aspx 文件:
.....
<asp:TemplateColumn HeaderText="权限">
<ItemTemplate><%# DataBinder.Eval(Container.DataItem,"dlb") %></ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="dep" Runat="server"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
.......cs文件:
......
if(e.Item.ItemType==ListItemType.EditItem)
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["strConn"]);
SqlDataAdapter da=new SqlDataAdapter("select * from dlb",conn);
DataSet ds=new DataSet();
da.Fill(ds,"table1");
DropDownList ddl=(DropDownList)e.Item.Cells[2].Controls[1];
ddl.DataSource=ds.Tables["table1"];
ddl.DataTextField="dlb";
ddl.DataValueField="id";
ddl.DataBind();
}
........
出现错误如下:
“/wl”应用程序中的服务器错误。
--------------------------------------------------------------------------------DataBinder.Eval:“System.Data.DataRowView”不包含名称为 dlb 的属性。
异常详细信息: System.Web.HttpException: DataBinder.Eval:“System.Data.DataRowView”不包含名称为 dlb 的属性。
。行 36: <ItemTemplate><%# DataBinder.Eval(Container.DataItem,"dlb") %></ItemTemplate>//此处出错。
aspx 文件:
.....
<asp:TemplateColumn HeaderText="权限">
<ItemTemplate><%# DataBinder.Eval(Container.DataItem,"dlb") %></ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="dep" Runat="server"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
.......cs文件:
......
if(e.Item.ItemType==ListItemType.EditItem)
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["strConn"]);
SqlDataAdapter da=new SqlDataAdapter("select * from dlb",conn);
DataSet ds=new DataSet();
da.Fill(ds,"table1");
DropDownList ddl=(DropDownList)e.Item.Cells[2].Controls[1];
ddl.DataSource=ds.Tables["table1"];
ddl.DataTextField="dlb";
ddl.DataValueField="id";
ddl.DataBind();
}
........
出现错误如下:
“/wl”应用程序中的服务器错误。
--------------------------------------------------------------------------------DataBinder.Eval:“System.Data.DataRowView”不包含名称为 dlb 的属性。
异常详细信息: System.Web.HttpException: DataBinder.Eval:“System.Data.DataRowView”不包含名称为 dlb 的属性。
。行 36: <ItemTemplate><%# DataBinder.Eval(Container.DataItem,"dlb") %></ItemTemplate>//此处出错。
ddl.DataSource=ds.Tables["table1"];
ddl.DataTextField="值字段";
ddl.DataValueField="主键字段";
ddl.DataBind(); 你自己好好对照一下吧。
这句话应该改为:
DropDownList ddl=(DropDownList)e.Item.Cells[2].Controls[0];
试试看。