加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 错误:数据绑定方法(如Eval(),XPath()和Bind()只能在

发布时间:2020-12-15 20:00:54 所属栏目:asp.Net 来源:网络整理
导读:我收到以下错误 Databinding methods such as Eval(),XPath(),and Bind() can only be used in the context of a databound control 但我试图在ASP.NET REPEATER Control中编写我的代码 %if (Eval("IsBreakPoint") == "1") { % tr td asp:Label ID="lblCateg
我收到以下错误
Databinding methods such as Eval(),XPath(),and Bind() can only be used in the context of a databound control

但我试图在ASP.NET REPEATER Control中编写我的代码

<%if (Eval("IsBreakPoint") == "1")
    { %>
        <tr>
            <td>
                <asp:Label ID="lblCategory" runat="server" Text='<%#Eval("Category") %>'></asp:Label>
            </td>
            <td colspan="27">
            </td>
       </tr>
    <%} %>

请帮忙

解决方法

<%if%>语句不支持数据绑定.

对于条件显示,我总是尝试数据绑定到单个服务器控件的Visible属性.

在像你这样涉及标记块(而不是单个服务器控件)的情况下,我将该块包装在< asp:PlaceHolder>中.控制如下:

<asp:PlaceHolder ID="CategoryPlaceHolder" runat="server" Visible='<%# Eval("IsBreakPoint") == "1") %>'>

    <tr>
        <td>
            <asp:Label ID="lblCategory" runat="server" Text='<%#Eval("Category") %>'></asp:Label>
        </td>
        <td colspan="27">
        </td>
   </tr>

</asp:PlaceHolder>

或者,如果您没有真正使用该标签服务器端:

<asp:PlaceHolder ID="CategoryPlaceHolder" runat="server" Visible='<%# Eval("IsBreakPoint") == "1") %>'>

    <tr>
        <td>
            <%# Eval("Category") %>
        </td>
        <td colspan="27">
        </td>
   </tr>

</asp:PlaceHolder>

或者更可读:如果您可以为Repeater定义ItemType属性,那么您将在设计时获得强类型和Intellisense(这将是我推荐的方法):

<asp:PlaceHolder ID="CategoryPlaceHolder" runat="server" Visible='<%# Item.IsBreakPoint == "1") %>'>

    <tr>
        <td>
            <%# Item.Category %>
        </td>
        <td colspan="27">
        </td>
   </tr>

</asp:PlaceHolder>

当该表达式包含双引号时,请注意在Visible值周围使用单引号. (啊,因为你已经完成了Label.Text属性.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读