【问题标题】: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");
}
现在,如果您点击复选框,脚本代码将首先执行,然后是回发代码(如果有的话)
这应该会有所帮助。