服务器端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

服务器端onclick,但在某些情况下阻止回发

为什么不在客户端做呢?

 <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编写。