如何实现asp.net中dropdownlist1 取数据库中值,作为另一个dropdownlist2在数据库中取值的条件,并把值写入到其它数据表里。
在VS2005里直接做绑定是出现:"Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用"错误。
在网上查到说: 有容器SelectedValue='<%# DataBinder.Eval(Container.DataItem,"")%>' ,没有容器则可直接使用Eval。
修改dropdownlist1的 SelectedValue='<%# DataBinder.Eval(Container.DataItem,"device_type")%>' 时提示无效值。
为什么。
选择条件(要查询的姓名):
<asp:DropDownList ID="DdlSelectWhere" runat="server" AutoPostBack="true"
onselectedindexchanged="DdlSelectWhere_SelectedIndexChanged">
<asp:ListItem Text="姓名A" Value="NameA"></asp:ListItem>
<asp:ListItem Text="姓名B" Value="NameB"></asp:ListItem>
</asp:DropDownList>
查询出来的结果:
<asp:DropDownList ID="DdlSelectNames" runat="server" DataTextField="Name" DataValueField="ID">
</asp:DropDownList>
后台绑定:
protected void DdlSelectWhere_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable dtTemp = DbOperator.GetDt("Select ID,Name From TableA Where Name='"+DdlSelectWhere.SelectedValue+"'");//根据条件获取数据,使用你的方式查找,只是举例。
DdlSelectNames.DataSource = dtTemp;
DdlSelectNames.DataBind();
}
修改dropdownlist1的 SelectedValue='<%# DataBinder.Eval(Container.DataItem,"device_type")%>' 时提示无效值。
为什么。
答:因为dropdownlist1绑定的数据中,没有你要选中的值,或者有这个值,但是在你绑定的时候还没有取到这些值,我之前遇到过这样的问题。
你可以在后台中使用上面Astar提供方式绑定数据。