Javascript C#/ASP web,ASP:在客户端执行消息框的复选框,如果是,则运行服务器端代码
我很抱歉,如果有人在某处回答了这个问题,但我找不到我的特定问题的答案 我有一个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: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;}