在aspx页面中我有:
<asp:HyperLink ID="HyperLink" runat="server" style="cursor:pointer; text-decoration:none;" NavigateUrl='<%#String.Format("~/storefront.aspx?CatalogID={0}",Eval("CatalogID"))%>'>
<asp:Label id="lblCustItem" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "CustItem")%>' width="15%">
</asp:Label>
</asp:HyperLink>
现在我正在尝试:
<%if (Eval("Integration").ToString() == "Y")
{ %>
<asp:HyperLink ID="HyperLink1" runat="server" style="cursor:pointer; text-decoration:none;" NavigateUrl='<%#String.Format("~/integration/vendorframe.aspx?CatalogID={0}",Eval("CatalogID"))%>'>
<asp:Label id="CustItemlbl" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "CustItem")%>' width="15%">
</asp:Label>
</asp:HyperLink>
<%} %>
<%else
{ %>
<asp:HyperLink ID="HyperLink" runat="server" style="cursor:pointer; text-decoration:none;" NavigateUrl='<%#String.Format("~/storefront.aspx?CatalogID={0}",Eval("CatalogID"))%>'>
<asp:Label id="lblCustItem" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "CustItem")%>' width="15%">
</asp:Label>
</asp:HyperLink>
<%} %>
第二段代码中的页面错误。所以我的问题是,我做错了什么,是否有更好的方法来使用if语句,如条件if,但我确实需要运行一个新的string.format实例这就是为什么我认为这不是一个选项。
错误讯息: 数据绑定方法(如Eval(),XPath()和Bind())只能在数据绑定控件的上下文中使用。
答案 0 :(得分:4)
一种解决方案是使用内联If:
Text='<%# (Eval("Integration").ToString() == "Y") ? DataBinder.Eval(Container.DataItem, "CustItem") : "" %>'
它不漂亮,但它可以完成工作。
答案 1 :(得分:0)
这对我有用。在Formview中。
<div id="PermDiv" runat="server" visible='<%#(Eval("Permissions").Equals("Edit") ? true : false ) %>'></div>