2011-09-08 1 views
0

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

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

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

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 секунд мне нужно показать Загрузка изображения.

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

ответ

0

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

<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; 
} 
+0

спасибо за ваш вклад Джеймса, но мой запрос не то, как запустить тревогу, но, как показывает индикатор после оповещения запускается, пока сетка не будет полностью загружена (привязана). –

+0

Если вы покажете предупреждение до того, как появится обратная передача, индикатор выполнения должен появиться после предупреждения, не так ли? Я думаю, вам просто нужно изменить метод, чтобы возвращать true независимо (поэтому он выполняет обратную передачу) –

+0

Какие изменения необходимо сделать? –