Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用

Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。

源错误:

[没有相关的源行]

源文件: c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/vs2005/288f644e/98b288a0/App_Web_xz2jc4re.22.cs    行: 0

堆栈跟踪:

[InvalidOperationException: Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。]
   System.Web.UI.Page.GetDataItem() +1999298
   ASP.userinfo_aspx.__DataBinding__control60(Object sender, EventArgs e) in c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/vs2005/288f644e/98b288a0/App_Web_xz2jc4re.22.cs:0
   System.Web.UI.Control.OnDataBinding(EventArgs e) +99
   System.Web.UI.WebControls.ListControl.OnDataBinding(EventArgs e) +11
   System.Web.UI.WebControls.ListControl.PerformSelect() +31
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
   System.Web.UI.WebControls.ListControl.OnPreRender(EventArgs e) +26
   System.Web.UI.Control.PreRenderRecursiveInternal() +77
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1360


版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.210


DropDownList在绑定的时候设定SelectedValue=’<%# Eval(“fieldname”)%>’,或者 SelectedValue=’<%#Bind(“fieldname”)%>‘运行时提示:Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。把绑定语句改成了SelectedValue=’<%# DataBinder.Eval(Container.DataItem,“fieldname”)%>'就好了!不知道为啥??

今天2007年8月2日了,现在我又遇到这个问题了

后来发现同一个网页的两个控件不能同时使用一个数据源!
————————————————
版权声明:本文为CSDN博主「yanick」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ycyangcai/article/details/1592336

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ListView和DataPager是ASP.NET常用的数据控件,可以帮助我们方便地实现数据绑定和分页显示。本文将介绍如何使用ListView和DataPager控件实现数据分页显示。 首先,我们需要在ASP.NET页面添加ListView和DataPager控件。可以通过以下代码来添加: ``` <asp:ListView ID="ListView1" runat="server"> <LayoutTemplate> <table> <tr> <th>姓名</th> <th>年龄</th> </tr> <<%--数据绑定部分--%>> <tr id="itemPlaceholder" runat="server"></tr> </table> </LayoutTemplate> <ItemTemplate> <tr> <td><%# Eval("Name") %></td> <td><%# Eval("Age") %></td> </tr> </ItemTemplate> </asp:ListView> <asp:DataPager ID="DataPager1" runat="server" PagedControlID="ListView1"> <Fields> <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" /> <asp:NumericPagerField /> <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" /> </Fields> </asp:DataPager> ``` ListView控件用于显示数据,DataPager控件用于实现分页。在ListView控件,我们使用ItemTemplate来定义每一行的显示格式,通过Eval函数来绑定数据的字段。在LayoutTemplate,我们使用itemPlaceholder来定义数据绑定位置。在DataPager控件,我们通过PagedControlID属性来指定需要分页的控件。 接下来,我们需要在代码实现数据绑定和分页功能。可以通过以下代码来实现: ``` protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindListView(); } } private void BindListView() { List<Person> list = GetPersonList(); ListView1.DataSource = list; ListView1.DataBind(); } private List<Person> GetPersonList() { List<Person> list = new List<Person>(); for (int i = 0; i < 50; i++) { Person p = new Person(); p.Name = "张三" + i; p.Age = 20 + i; list.Add(p); } return list; } ``` 在Page_Load事件,我们调用BindListView方法来实现数据绑定。在BindListView方法,我们通过GetPersonList方法获取数据源,并将数据绑定到ListView控件。 ``` protected void DataPager1_PreRender(object sender, EventArgs e) { BindListView(); } ``` 在DataPager控件,我们还需要添加PreRender事件来实现翻页时的数据绑定。在PreRender事件,我们同样调用BindListView方法来重新绑定数据源。 至此,我们就完成了ListView和DataPager控件使用,可以实现方便的数据绑定和分页显示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值