проблема с оценкой asp.net - PullRequest
0 голосов
/ 31 августа 2011

Итак, у меня есть страница asp.net с повторителем, привязанным к модели представления

Я хочу показать / скрыть блок HTML на основе того, совпадает ли текущее свойство строки CapAssignedToUserCode с переменной currentUserCode (см. оператор if)

в текущей строке есть значение для свойства CapAssignedToUserCode, и если я жестко закодирую Eval ("CapAssignedToUserCode") в строку, все это работает

Я в основном хочу получитьтекущую строку репитера и передать свойство CapAssignedToUserCode в функцию commonCap.SameUserCode

<asp:Repeater ID="rptAnnualActionsAssigned" runat="server">
    <ItemTemplate>
        <div class="item">
            <asp:HiddenField ID="hdnCapItemId" runat="server" />
            <h4>
                <%#Eval("CategoryTitle")%>:
                <%#Eval("CategoryIndex")%></h4>
            <span class="status"><strong>Status: </strong>
                <%#Eval("CapAssignedStatus")%></span>
                <span class="status"><strong>Assigned To: </strong>
                <%#Eval("CapAssignedToFullname")%></span>
            <div class="noHighlightTable">
            usercode:<%#Eval("CapAssignedToUserCode")%>
                <%
                    if (showCompleteBtn || commonCap.SameUserCode(Eval("CapAssignedToUserCode").ToString(), currentUserCode))
                  {%>
                <a class="noHighlightBtn" onclick="OpenSPDialog('/_layouts/beim/CAPAction.aspx?capDataId=' + <%#Eval("CapDataId")%>, 'Complete Action')"
                    href="javascript:void(0);">Complete action</a>
                   <%
                  }%>

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Используйте Eval only для визуализации поля, если вы хотите передать данные поля в метод, используйте Container.DataItem.Ваш код должен выглядеть так:

<%#
   if (showCompleteBtn || commonCap.SameUserCode((Container.DataItem as YourBindedType).CapAssignedToUserCode), currentUserCode))
{%>
0 голосов
/ 31 августа 2011

Вызовите метод inline.Метод имеет вашу логику / вывод.

<%# WhateverYourLogicIs( (bool) DataBinder.Eval(Container.DataItem,"CapAssignedToUserCode") ) %>

Есть несколько других способов, включая проверку eval напрямуюПроверить:

Условная логика на странице ASP.net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...