onslick на стороне сервера, но предотвращает обратную передачу в некоторых случаях - PullRequest
0 голосов
/ 26 октября 2011

У меня есть следующий метод 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.

Спасибо за помощь

Ответы [ 2 ]

2 голосов
/ 26 октября 2011

почему бы не сделать это на стороне клиента?

 <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;
}
1 голос
/ 26 октября 2011

вы не можете избежать обратной передачи после того, как вы уже выполняете событие Click на стороне сервера.

альтернативы:

  • используйте функцию на стороне клиента для проверки, проверки и вызова на стороне серверащелкните только в определенных случаях или верните false, чтобы избежать этого.
  • Используйте метод UpdatePanel, чтобы включить частичный рендеринг и минимизировать влияние обратной передачи.Все еще будет существовать постбэк и весь жизненный цикл страницы, но минимальное мерцание страницы.

в вашем случае, я думаю, вы можете просто делать все на стороне клиента, код, который вы предоставили выше, легко написать в JQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...