在按钮/链接上调用javascript和C#单击

时间:2011-12-03 11:05:07

标签: c# javascript asp.net

我目前有一个带有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函数(它们不需要交互/共享任何数据)。这甚至可能吗?

3 个答案:

答案 0 :(得分:1)

您可以使用LinkBut​​ton并设置OnClientClick属性以在转到服务器之前执行javascript函数。如果从此函数返回false,您甚至可以取消服务器调用:

<asp:LinkButton 
    id="LinkButton1"
    text="Add To Cart"
    OnClientClick='<%# string.Format("&quot;name={0}&quot;, &quot;price={1}&quot;, &quot;quantity=1&quot;", 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应用程序中)。