服务器端onclick,但在某些情况下阻止回发
本文关键字:情况下 onclick 服务器端 | 更新日期: 2023-09-27 18:12:21
我有以下的服务器端onclick方法:
protected void btnSearch_Click(object sender, EventArgs e)
{
if (txtSearch.Text == "" || txtSearch.Text.Length < 4) {
//NO POSTBACK HERE
} else {
Response.Redirect(www.google.be);
}
}
有什么建议吗?我不能在客户端这样做,因为我需要在url中提供一个服务器端参数。
Thanks for help
为什么不在客户端做呢?
<asp:Button ID="btnSearch" OnClientClick="return validateForm();" OnClick="btnSearch_Click" Text="Send" />
并有一个javascript方法:
function validateForm(){
if(document.getElementById('<%= txtSearch.ClientID %>').value == '')
return false;
else
return true;
}
一旦您已经在执行服务器端Click事件,您就无法避免回发。
选择:
- 使用客户端函数来检查和验证,并仅在某些情况下调用服务器端单击或返回false以避免它。
- 使用UpdatePanel方法来启用部分渲染并最小化回发的影响。仍然会有回发和整个页面生命周期,但页面闪烁最小。
在你的情况下,我认为你可以简单地做所有的客户端,你上面提供的代码很容易用JQuery编写。