我在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>
答案 0 :(得分:2)
是的,您正在尝试在HTML输入控件中使用Eval,错误正确地说明了这一点。
Eval或Bind和其他人通常在绑定DataList,DataGrid,DataRepeater等数据可绑定控件时执行,因为这些命令( Eval ...)是针对DataSource应用的具有约束力。对原始HTML输入这样的控件这样做是没有意义的,因为没有什么可以绑定的。
请注意,您<%= Common.GetUserIdUrl...
的通话/使用情况看起来是正确的,可以留在那里:)