在复选框的 AutoPostBack 之前执行 js

Executing js before AutoPostBack of checkbox

NET 4 和 asp 复选框,它在用户控件内自动 post 返回,我需要在自动 post 返回发生之前调用 js。

编辑 InputAttributes 的 onclick 属性没有帮助。它不允许我那样做。

尝试注册提交事件或启动脚本,但没有帮助。除非有一种方法可以在单击或取消单击复选框时在提交时注册。这个还没找到当我在提交时注册时,只要页面上发生任何事情,我的函数就会被调用。

不想为此开始在我的页面上包含 jquery。

我最后的选择是在没有 AutoPostBack 的情况下在 js 中提交表单,但是我希望使用提交时注册或注册启动的解决方案而不是这个。我想与我的代码保持一致。

谢谢 -P

您可以 use/override OnPreRender(Eventargs e){} 方法来处理附加功能。如果 AutoPostBack 为真,它会注册客户端脚本以在客户端呈现之前生成 post-back 事件。

例如:您有一个 asp 复选框定义为

<asp:CheckBox ID="chkBox" runat="server" Text="Check this box" AutoPostBack="True"/>

在您的 .cs 文件中

protected override void OnPreRender(EventArgs e) 
        {
            base.OnPreRender(e);
            chkBox.Attributes["onChange"] = "clickMe();";
        }

protected void Page_Load(object sender, EventArgs e)
        {
            if(IsPostBack){
                chkBox.Text = "After Post Back";
            }
        }

clickMe() 应该在脚本块的 .ascx 文件中定义。

function clickMe() {
            alert("SCRIPT RAN FIRST");
        }

现在,如果您点击复选框,脚本代码将首先执行,然后 post返回代码(如果有的话) 这应该有所帮助。