首页 新闻 会员 周边

Web页面报错: Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件

0
悬赏园豆:20 [已解决问题] 解决于 2010-05-12 11:11

如何实现asp.net中dropdownlist1 取数据库中值,作为另一个dropdownlist2在数据库中取值的条件,并把值写入到其它数据表里。

在VS2005里直接做绑定是出现:"Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用"错误。
在网上查到说: 有容器SelectedValue='<%# DataBinder.Eval(Container.DataItem,"")%>' ,没有容器则可直接使用Eval。

修改dropdownlist1的 SelectedValue='<%# DataBinder.Eval(Container.DataItem,"device_type")%>' 时提示无效值。

 

为什么。

lalab的主页 lalab | 初学一级 | 园豆:120
提问于:2010-05-07 14:01
< >
分享
最佳答案
-2

选择条件(要查询的姓名):
<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();
 }

收获园豆:20
Astar | 高人七级 |园豆:40805 | 2010-05-07 14:15
其他回答(1)
0

修改dropdownlist1的 SelectedValue='<%# DataBinder.Eval(Container.DataItem,"device_type")%>' 时提示无效值。

 

为什么。

答:因为dropdownlist1绑定的数据中,没有你要选中的值,或者有这个值,但是在你绑定的时候还没有取到这些值,我之前遇到过这样的问题。

你可以在后台中使用上面Astar提供方式绑定数据。

 

上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2010-05-07 15:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册