2

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

我有一个服务器控制

<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 注册功能不起作用

4

3 回答 3

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>

它应该工作。

于 2013-02-23T17:14:50.673 回答
0

您是否尝试过这种方式:

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

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

代码隐藏:

Page.ClientScript.RegisterStartupScript(this.GetType(),"myscript", "doSomeThing()",true);
于 2013-02-23T17:05:26.867 回答
0

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

例如

<asp:LinkButton ID="vidoUpdatebtn" OnClientClick="alert('TestReady'); return false;" runat="server">LinkButton</asp:LinkButton>
于 2013-02-23T17:05:57.117 回答