sye*_*sin 0 javascript asp.net postback
肯定会被标记为重复的,但经过大量的问题和例子,我无法解决我的问题.
我想要的是?
从客户端java脚本调用asp.net中的服务器端事件处理程序它不在服务器端.我通过设置断点检查它,页面轻弹但没有调用服务器端方法.
关于代码背后的点击事件是
protected void btninsert_Click(object sender, EventArgs e)
{
// my code
}
Run Code Online (Sandbox Code Playgroud)
aspx文件
<asp:Button ID="btninsert" runat="server" ValidationGroup="form" CssClass="btn"
OnClientClick="DoPost()" Text="Save" />
Run Code Online (Sandbox Code Playgroud)
Javascript方法是
function DoPost() {
function DoPost() {
var chk = document.getElementById('<%= chkstatus.ClientID %>');
if (chk.checked)
__doPostBack('<%= btninsert.ClientID %>', 'OnClick');
return true;
//return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过这
__doPostBack('btninsert', 'OnClick');和__doPostBack('btninsert', '');和$('btnSubmit').trigger('click');没有成功.
我究竟做错了什么?
编辑:如果我使用OnClick的事件则在服务器端事件不论去if condition的DoPost方法.
啊,这很简单.感谢所有答案.
解决方案:
使用OnClick属性进行服务器端事件,OnClientclick使用客户端事件进行验证.
OnClientClickjavascript方法将返回true,false并决定serveride onclick事件是否会触发.
代码将是这样的
<script type="text/javascript">
function DoPost() {
var chk = document.getElementById('<%= chkstatus.ClientID %>');
if (chk.checked) {
var c = confirm("are you sure?");
if (c == true) {
return true;
} else
{ return false; }
}
return true;
}
</script>
Run Code Online (Sandbox Code Playgroud)
和Button标签
<asp:Button ID="btninsert" runat="server" ValidationGroup="form" CssClass="btn"
OnClientClick="return DoPost();" OnClick="btninsert_Click" Text="Save" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38025 次 |
| 最近记录: |