在 onserverclick 中传递参数

发布于 2024-10-31 15:57:08 字数 486 浏览 1 评论 0原文

使用这行代码时,出现错误

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

羁拥 2024-11-07 15:57:08

确保 <%# %> 跨越整个属性,如下所示:

<a id="A1" class="positive" runat="server" 
   onserverclick='<%# "addtocart("+Eval("ProductDescriptionId").ToString()+",Quantity)"%>'>

或者,您可以在 Eval 方法上使用内置格式:

<a id="A1" class="positive" runat="server" 
   onserverclick='<%# DataBinder.Eval( Container.DataItem, "ProductDescriptionId", "addtocart({0},Quantity)")%>'>

Make sure the <%# %> spans the entire attribute like so:

<a id="A1" class="positive" runat="server" 
   onserverclick='<%# "addtocart("+Eval("ProductDescriptionId").ToString()+",Quantity)"%>'>

Alternatively, you can use the built-in formatting on the Eval method:

<a id="A1" class="positive" runat="server" 
   onserverclick='<%# DataBinder.Eval( Container.DataItem, "ProductDescriptionId", "addtocart({0},Quantity)")%>'>
日记撕了你也走了 2024-11-07 15:57:08

由于 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 like DataBinder.Eval(Container.DataItem,"ProductDescriptionId").

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文