在C#中调用javascript函数

时间:2011-03-26 23:07:42

标签: c# .net asp.net

您好我想根据查询显示或隐藏重复记录。所以,我需要知道如何从C#codebehind调用javascript函数。

  <a onclick="Grid1.insertRecord(); return false;" id="a2"  href="javascript:">Save</a>

当我点击保存时,我需要显示一个用javascript编写的弹出窗口。

 if (!exist)//exists is the query
        {
            System.Web.UI.Control my = FindControl("a2");
              a2.Attributes.Add("onclick", "retrun HideDuplicate()");

此行返回错误,指出“当前上下文中不存在a2。”

3 个答案:

答案 0 :(得分:1)

为什么不使用asp.net LinkButton?它有一个服务器端Click事件,可以从c#代码隐藏中访问。

答案 1 :(得分:1)

除非你向它添加一个runat =“server”,否则基本的<a>标记不会被asp.net变成一个控件。然后它变成HtmlGenericControl

<a onclick="Grid1.insertRecord(); return false;" id="a2" href="#" runat="server">Save</a>

这可能对您有用 - 如果您在页面上有多个这样的链接(例如在gridview的一行中?)或者它只是在那里一次就不清楚它。

你使用javascript的方式也没有遵循最佳实践,但那是另一天的讨论:)

答案 2 :(得分:1)

带有programatic creation of client side callbacks without postbackexample where the code behind is in C#的MSDN文档可能会很好地概述它应该如何工作。

在您的情况下,相应的代码隐藏应该实现接口'ICallbackEventHandler'及其描述的两种方法。此外,除了执行程序/调用程序(在您的情况下,是“保存”方法)之外,您还需要两个客户端Javascript函数来准备和处理回调。但是,如示例所示,可以在代码隐藏中注册另外两个Javascript函数之一。