在onserverclick中传递参数

本文关键字:参数 onserverclick | 更新日期: 2023-09-27 17:50:16

在使用这行代码时,我得到了错误

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>

在onserverclick中传递参数

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

<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)")%>'>

因为onserverclick是在服务器端计算的,所以#被认为是c#指令。您可以将<%#Eval("ProductDescriptionId")%>替换为DataBinder.Eval(Container.DataItem,"ProductDescriptionId")