如果脚本在用户控制中,我如何从asp.net服务器端调用JavaScript函数

时间:2013-02-23 17:00:08

标签: asp.net

我有一个ASP.NET页面,其中注册了1个用户控件。

我有一个服务器控件

<asp:LinkButton ID="vidoUpdatebtn" OnClick="vidoUpdatebtn_Click" runat="server">LinkButton</asp:LinkButton>

在.cs我处理

 protected void vidoUpdatebtn_Click(object sender, EventArgs e)
    {
        //do something
        ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "doSomeThing()", true);

    }

在用户控件中我有函数doSomeThing()

 function doSomeThing() {
         alert("TestReady");
     }

当我点击LinckButon注册的功能不起作用

3 个答案:

答案 0 :(得分:3)

在PageLoad中写这个(你所写的唯一修改是注册的时刻 - PageLoad没有点击,点击太晚了,你必须在这里写下javascript函数的实际实现) :

    protected void Page_Load(object sender, EventArgs e) {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", 
@"function doSomeThing() {
    alert(""TestReady"");
}"
        , true);
    }

并在asp:LinkBut​​ton标记中(您必须指定OnClientClick属性):

<asp:LinkButton ID="vidoUpdatebtn" runat="server" OnClick="vidoUpdatebtn_Click" OnClientClick="doSomeThing()" >LinkButton</asp:LinkButton>

它应该有用。

答案 1 :(得分:0)

你试过这种方式:

在aspx页面上添加脚本管理器

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />

代码隐藏:

Page.ClientScript.RegisterStartupScript(this.GetType(),"myscript", "doSomeThing()",true);

答案 2 :(得分:0)

如果要在单击按钮上运行客户端代码,则可以使用OnClickClick属性而不是OnClick事件。这也将避免回发的需要,并将立即给用户反馈。

e.g。

<asp:LinkButton ID="vidoUpdatebtn" OnClientClick="alert('TestReady'); return false;" runat="server">LinkButton</asp:LinkButton>