在 onserverclick 中传递参数
使用这行代码时,出现错误
CS1040: 预处理器指令必须显示为行上的第一个非空白字符
此代码位于标记下并位于 asp:Repeater 控件内
<td valign="bottom" width="130">
<%# Eval("Quantity")%>+ in stock<br />
<input class="textbox" maxlength="2" name="Quantity" size="2" type="text" value="1" />
<br />
<a id="A1" class="positive" runat="server"
onserverclick='addtocart(<%#Eval("ProductDescriptionId")%>,Quantity)'> Add to Cart</a>
While using this line of code, I get the error
CS1040: Preprocessor directives must appear as the first non-whitespace character on a line
This code is under tag and inside an asp:Repeater control
<td valign="bottom" width="130">
<%# Eval("Quantity")%>+ in stock<br />
<input class="textbox" maxlength="2" name="Quantity" size="2" type="text" value="1" />
<br />
<a id="A1" class="positive" runat="server"
onserverclick='addtocart(<%#Eval("ProductDescriptionId")%>,Quantity)'> Add to Cart</a>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
确保
<%# %>
跨越整个属性,如下所示:或者,您可以在
Eval
方法上使用内置格式:Make sure the
<%# %>
spans the entire attribute like so:Alternatively, you can use the built-in formatting on the
Eval
method:由于 onserverclick 在服务器端评估,因此 # 被视为 C# 指令。您可以将
<%#Eval("ProductDescriptionId")%>
替换为DataBinder.Eval(Container.DataItem,"ProductDescriptionId")
之类的内容。since onserverclick is evaluated on server side the # is being considered as C# directive. you can replace
<%#Eval("ProductDescriptionId")%>
with something likeDataBinder.Eval(Container.DataItem,"ProductDescriptionId")
.