Javascript C#/ASP web,ASP:在客户端执行消息框的复选框,如果是,则运行服务器端代码

Javascript C#/ASP web,ASP:在客户端执行消息框的复选框,如果是,则运行服务器端代码,javascript,c#,jquery,asp.net,.net,Javascript,C#,Jquery,Asp.net,.net,我很抱歉,如果有人在某处回答了这个问题,但我找不到我的特定问题的答案 我有一个asp对象: <asp:CheckBox ID="chkRemove" runat="server" Checked='<%#Convert.ToBoolean(Eval("CommonWord")) %>' OnCheckedChanged = "OnCheckedChanged_CommonWord" AutoPostBack="true" /> 基本上,我想显示一个消息框,询问

我很抱歉,如果有人在某处回答了这个问题,但我找不到我的特定问题的答案

我有一个asp对象:

 <asp:CheckBox ID="chkRemove"  runat="server" Checked='<%#Convert.ToBoolean(Eval("CommonWord")) %>' OnCheckedChanged
= "OnCheckedChanged_CommonWord" AutoPostBack="true"  />

基本上,我想显示一个消息框,询问是否可以删除,如果选择“否”或“取消”,则不执行回发(或不运行任何服务器端代码),如果是,则运行该函数“OnCheckedChanged\u CommonWord”

我尝试执行一个弹出的javascript Confirm()调用,但如果我按yes,C#服务器端代码不会运行(“OnCheckedChanged_CommonWord”)“no”或“cancel”工作正常,因为它不会回发


另外,由于服务器限制,请不要使用AJAX。

复选框控件实际上缺少任何类型的
OnClientCheckChanged
事件,可用于根据客户端事件管理是否应发生
回发
(如
OnClientClick
等)

但是,您应该能够通过使用
onclick
属性来实现这一点,该属性带有一个函数,通过手动调用来管理默认的
PostBack

<asp:CheckBox ID="chkRemove" runat="server"  
       Checked='<%#Convert.ToBoolean(Eval("CommonWord")) %>' 
       OnCheckedChanged="OnCheckedChanged_CommonWord" 
       AutoPostBack="true"
       onclick='return OnClientCheckChanged("Are you sure you want to do this?",this);' />
<script>
    function OnClientCheckChanged(prompt,source) {
        if (confirm(prompt)){
            __doPostBack("'" + source.id + "'", '');
            return true;
        }
        else {
            return false;
        }
    }
</script>

函数OnClientCheckChanged(提示,源){
如果(确认(提示)){
__doPostBack(“'”+source.id+“'”,”);
返回true;
}
否则{
返回false;
}
}
实际单击复选框时,它将触发您的
confirm()
提示,并根据结果,它将触发显式
PostBack
(通过讨厌的
\u doPostBack()
调用)或不执行任何操作


我对
\uuu doPostBack()
调用不是很感兴趣,但这似乎是一个合适的解决方案。

抱歉,我对Javascript不太熟悉,我添加了您提供的函数,它开始抱怨将“”作为\u doPostBack的第二个参数,因此我将其改为“”现在它是说实际的函数错误-需要标识符。有什么想法吗?函数OnClientCheckChanged(prompt,source){if(confirm(prompt)){{uu doPostBack(““+source.id+”,”);返回true;}否则{return false;}