Избегайте зависания страницы после запуска сценария Registerstartup - PullRequest
0 голосов
/ 08 сентября 2011

У меня есть приложение asp.net 3.5, которое содержит gridview, с флажком в качестве одного из столбцов.

Если пользователь не установил какие-либо флажки и щелкнул кнопку «Отправить», выдается предупреждение, предлагающее пользователю выбрать кнопку.

Код для запуска оповещения приведен ниже;

 System.Text.StringBuilder sb = new System.Text.StringBuilder();
 sb.Append(@"<script language='javascript'>");
 sb.Append(@"alert('Please select at least one record!')");
 sb.Append(@"</script>");
 ScriptManager.RegisterStartupScript(upnlGrid, this.GetType(), "GridView", sb.ToString(), false);
 BindGrid();

Пока не сработает оповещение, я вижу изображение "Загрузка ..." (индикатор выполнения обновления ajax), что нормально. Но потом, после того, как предупреждение сработало, мне все равно нужно увидеть то же изображение, которое не видно. из-за чего страница зависает на несколько секунд (5-10 секунд). За эти 5-10 секунд мне нужно показать изображение загрузки.

Пожалуйста, руководство!

1 Ответ

0 голосов
/ 08 сентября 2011

Вы можете попробовать подтвердить выбор перед выполнением обратной передачи.Вот пример:

<asp:Button ID="Button1" runat="server" Text="Foo" OnClientClick="return validateGridSelection()" ... />

И ваша функция JavaScript:

validateGridSelection = function() {
    var itemsSelected = 0;
    $("#<%=GridView1.ClientID%>").find("input:checkbox").each(function() {
        if (this.checked) {
            itemsSelected++;
        }
    });
    if (itemsSelected == 0) {
        alert("Please select at least one checkbox.");
    }
    return true;
} 
...