Привязка данных в операторах if - PullRequest
1 голос
/ 27 сентября 2011

На странице 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 (), могут использоваться только в контексте элемента управления с привязкой к данным.

Ответы [ 2 ]

4 голосов
/ 27 сентября 2011

Одним из решений является использование Inline If:

Text='<%# (Eval("Integration").ToString() == "Y") ? DataBinder.Eval(Container.DataItem, "CustItem") : "" %>'

Это не красиво, но это сделает работу.

0 голосов
/ 19 марта 2013

Это сработало для меня. В Formview.

    <div id="PermDiv" runat="server" visible='<%#(Eval("Permissions").Equals("Edit") ? true : false  ) %>'></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...