C#/ASP-web,ASP:在客户端执行复选框消息框,如果是,则运行服务器端代码
C#/ASP web, ASP:Checkbox to do messagebox on client side, if yes run server side code
如果在某个地方得到了答案,但我找不到特定问题的答案,我深表歉意。
我有一个asp对象:
<asp:CheckBox ID="chkRemove" runat="server" Checked='<%#Convert.ToBoolean(Eval("CommonWord")) %>' OnCheckedChanged
= "OnCheckedChanged_CommonWord" AutoPostBack="true" />
基本上,我想显示一个消息框,询问是否可以删除,如果选择了"否"或"取消",则不要进行回发(或不运行任何服务器端代码),如果是,则运行函数"OnCheckedChanged_CommonWord"。
我试着做了一个弹出的javascript Confirm()调用,但如果我按yes,C#服务器端代码就不会运行("OnCheckedChanged_CommonWord")——"no"或"cancel"非常有效,因为它不会回发。
附言:由于服务器限制,请不要使用AJAX。
OnClientCheckChanged
事件,这些事件可用于管理基于客户端事件的PostBack
是否应该发生(如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>
当复选框被实际点击时,它将触发confirm()
提示,并根据结果,它将要么触发显式PostBack
(通过讨厌的__doPostBack()
调用),要么什么都不做。
我不是__doPostBack()
调用的超级粉丝,但这似乎是一个合适的解决方案。
相关文章:
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- 如果此代码运行,请执行代码
- PHP:运行后变量不工作“;如果“;命令
- 如果文本或值以字符开头,请运行函数
- Don'如果字段为空,则不运行函数
- 成功ajax:如果是200状态代码,则运行函数else另一个函数
- 如果调试器关闭,Internet Explorer将出现运行代码问题
- 如果onchange为true,如何运行函数
- 如果发现任何数据,如何停止每7秒运行一次的函数
- 如果用户登录不起作用,则运行脚本
- C#/ASP-web,ASP:在客户端执行复选框消息框,如果是,则运行服务器端代码
- 如果URL包含字符串don't运行jQuery函数
- jQuery不运行“;如果“;加载后
- 如果我在网站上运行IE8调试器,代码会发生什么变化
- 内容编辑器 Web 部件脚本不在 IE 11 中运行(如果开发人员工具处于打开状态,则运行)
- jQuery/Javascript函数延迟运行,直到另一个函数完成(如果需要)
- 如果我隐藏引导轮播,它是否仍在后台运行
- 如果未提交表单,则在卸载之前运行窗口功能
- 如果语句未按预期运行
- 如果光标在图像上在某种意义上不停止.它正在运行