Eval () и код выражения - PullRequest
       5

Eval () и код выражения

1 голос
/ 14 сентября 2011

У меня есть такой код на веб-странице ASP.NET, но когда я его запускаю, я получаю сообщение об ошибке.

>     Databinding methods such as Eval(), XPath(), and Bind() can only
> be used in the context of a databound control.

В чем проблема?

        <% if (Helpers.GetInt(Eval("Price")) != 0)
           { %>
        <input type="button" name="btnSignUp" value="Sign Up - Plimus »" onclick="window.location='<%#Eval("BuyUrl2")%><%= Common.GetUserIdUrl("&","custom_user_id") %>'" />       
         <%  } %>

Я получаю код ошибки настрока

<% if (Helpers.GetInt (Eval ("Price"))! = 0) </p>

Я завершаю код повторителя ниже.Как я уже говорил ранее, все в этом коде работает нормально, за исключением оператора IF.Я хочу оценить PRICE и, если это !=0 Показать кнопку HTML-код.

<ItemTemplate>
    <div class="row">
        <div class="col title">
            <%#Eval("Title")%>
        </div>
        <hr/>
        <div class="col price">
            <%#string.Format("{0} USD/{1} </br> Instant activation", Helpers.GetDecimal(Eval("Price")).ToString("N"), Portal.GetMembershipTypeLabel(Helpers.GetInt(Eval("Credits"))))%>
        </div>
        <div class="col">
            <input type="button" name="btnSignUp" value="Sign Up - PayPal »" onclick="window.location='<%#Eval("BuyUrl1")%><%= Common.GetUserIdUrl("&","custom_user_id") %>'" />
            <br />
            <br />
            <% if (Helpers.GetInt(Eval("Price")) != 0)
               { %>
            <input type="button" name="btnSignUp" value="Sign Up - Plimus »" onclick="window.location='<%= Eval("BuyUrl2")%><%= Common.GetUserIdUrl("&","custom_user_id") %>'" />       
             <%  } %>

        </div>
         <hr/>
    </div>
</ItemTemplate>

1 Ответ

2 голосов
/ 14 сентября 2011

да, вы пытаетесь использовать Eval в элементе управления вводом HTML, что недопустимо, как правильно указано в сообщении об ошибке.

Eval или Bind и участники обычно выполняются, когда вы связываете элемент управления с привязкой к даннымкак DataList, DataGrid, DataRepeater и т. д., потому что эти команды ( Eval ...) применяются к источнику данных, который вы привязываете.делать это против элемента управления, такого как ввод необработанного HTML, не имеет смысла, потому что нечего связывать.

обратите внимание, что ваш вызов / использование <%= Common.GetUserIdUrl... выглядит правильно и может остаться там:)

...