【问题标题】:Executing js before AutoPostBack of checkbox在复选框的AutoPostBack之前执行js
【发布时间】:2015-11-25 18:39:02
【问题描述】:

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

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

尝试在提交事件或启动脚本上注册,但无济于事。除非有办法在单击或未单击复选框时注册提交。还没找到这个。当我在提交时注册时,每当页面上发生任何事情时都会调用我的函数。

不想仅仅为此而在我的页面上包含 jquery。

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

谢谢 -P

【问题讨论】:

    标签: javascript asp.net checkbox scriptmanager


    【解决方案1】:

    您可以使用/覆盖 OnPreRender(Eventargs e){} 方法来处理附加功能。如果 AutoPostBack 为 true,它会注册客户端脚本以在客户端呈现之前生成回发事件。

    例如:你有一个 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");
            }
    

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

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 1970-01-01
      • 2017-04-12
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多