Eval()和表达式代码

时间:2011-09-14 14:55:44

标签: c# asp.net eval

我在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") %>'" />       
         <%  } %>

我在线上获得错误代码

&lt;%if(Helpers.GetInt(Eval(“Price”))!= 0)

我完成了Repeater代码如下。正如我早期所说,除了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 个答案:

答案 0 :(得分:2)

是的,您正在尝试在HTML输入控件中使用Eval,错误正确地说明了这一点。

Eval或Bind和其他人通常在绑定DataList,DataGrid,DataRepeater等数据可绑定控件时执行,因为这些命令( Eval ...)是针对DataSource应用的具有约束力。对原始HTML输入这样的控件这样做是没有意义的,因为没有什么可以绑定的。

请注意,您<%= Common.GetUserIdUrl...的通话/使用情况看起来是正确的,可以留在那里:)