我目前有一个带有itemTemplate的Gridview,它充当调用javascript函数的链接:
<ItemTemplate>
<a href="javascript:;" onclick="simpleCart.add( 'name=<%# Eval("Name") %>' , 'price=<%# Eval("Price") %>' , 'quantity=1' );">Add To Cart</a>
</ItemTemplate>
我需要添加一些我只能在C#中执行的功能,所以我想用一个按钮替换链接,当单击按钮时它会同时调用C#函数和javascript函数(它们不需要交互/共享任何数据)。这甚至可能吗?
答案 0 :(得分:1)
您可以使用LinkButton并设置OnClientClick属性以在转到服务器之前执行javascript函数。如果从此函数返回false,您甚至可以取消服务器调用:
<asp:LinkButton
id="LinkButton1"
text="Add To Cart"
OnClientClick='<%# string.Format(""name={0}", "price={1}", "quantity=1"", Eval("Name"), Eval("Price")) %>'
OnClick="LinkButton1_Click"
runat="Server" />
答案 1 :(得分:1)
您可以使用OnClientClick
LinkButton
属性来执行客户端脚本,并为服务器代码执行OnClick
事件
以下是代码示例和更详细的说明http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.onclientclick.aspx
答案 2 :(得分:0)
是的,这是可能的。
听起来你想要避免整页回发,所以你可以使用ASP.NET回调或更私密的Ajax调用来调用服务器端代码,也许使用jQuery。 (我假设您的C#代码在服务器上,而不是在本地Silverlight应用程序中)。