2008-11-10 2 views
2

Есть ли событие клиента, которое я могу использовать, когда данные DropDownList были загружены/привязаны к элементу управления? Когда это произойдет, мне нужно инициировать событие на их стороне.События клиента ASP.Net в DropDownList?


В принципе, я пытаюсь заблокировать элементы управления в то время как данные загружаются как если есть замедление (не редкость), пользователь может начать ввод данных, а затем теряет фокус, как они печатают.

Я пробовал делать это в тегах, но методы, расположенные там, похоже, перестали работать после первой обратной передачи! (Любая помощь там была бы весьма признательна). В качестве обходного пути я попытался привязать события к самим элементам, и хотя это работает для блокировки, используя событие onchange, я не могу разблокировать его при успешной загрузке данных!

Любые идеи? Спасибо за ответы до сих пор :)

ответ

3

Поскольку данные будут привязаны на стороне сервера, у вас нет события на стороне клиента для этого конкретного события, однако на той странице, на которой была сделана эта страница, данные будут там, поэтому вы можете захотеть запустить свою клиентский сценарий в событии document.load или используя что-то вроде события document.ready jQuery. Это запустит запуск вашего скрипта после того, как страница (включая выпадающий список) завершит загрузку.

1

Jason здесь правильно, потому что вы не можете «уведомить» клиента о возникновении такого события. Одна вещь, которую вы можете сделать, - вызвать метод Page.RegisterStartupScript(), чтобы сделать что-то с JavaScript после того, как страница закончила загрузку (и предположительно, что произошла запись, которая сделала вашу привязку данных). Опять же, это предполагает, что вы хотите что-то сделать на стороне клиента после завершения привязки данных, в отличие от серверной.

1

Можете ли вы использовать ASP.NET AJAX в своем приложении? Если это так, вы можете, чтобы выбранное событие открыло модальное диалоговое окно, в котором вы можете отображать текст обработки, когда вы заполняете раскрывающийся список. Таким образом, у пользователя нет доступа к каким-либо другим элементам управления, и вы можете делать то, что вам нужно, не беспокоясь.

+0

Cheers, но я установил его с помощью $ (документ) .ready() метод. Изменение триггеров метода blockUI, и после завершения обратной передачи он разблокируется :) – Damien 2008-11-13 15:17:48

0

Я использую следующий код на своих главных страницах для своих веб-сайтов. Это останавливает попытку пользователя использовать элемент управления до его полной привязки. Я обнаружил, что если элемент управления не был полностью привязан (медленные соединения), тогда страница взрывается.

По существу сценарий захватывает почту, если эта страница не выполнена. Разрешить пользователю ничего не делать, пока страница не завершит обработку. Я написал это год назад, и это очень удобно.

  1. первый набор тег OnLoad тела в setdopostback()

  2. добавить это в сумы блок в теле.

    var boolDoPostBack = false; 
    
        if (__doPostBack) 
        { 
         // save a reference to the original __doPostBack 
         var __oldDoPostBack = __doPostBack; 
    
         //replace __doPostBack with another function 
         __doPostBack = AlwaysFireBeforeFormSubmit; 
        } 
        function setdopostback() 
        { 
         boolDoPostBack = true; 
        } 
        function AlwaysFireBeforeFormSubmit (eventTarget, eventArgument) 
        { 
         var x= document.readyState 
    
         if (x != "complete") 
         { 
          if (x == "loading" || x == "interactive" || x == "unitialized" || x == "loaded") 
          { 
           //do nothing with IE postback 
          } 
          else if (!boolDoPostBack) 
          { 
           //do nothing with FireFox postback 
          } 
          else 
          { 
           //alert('Allow Postback 1'); 
           return __oldDoPostBack (eventTarget, eventArgument); 
          } 
         } 
         else 
         { 
          //alert('Allow Postback 2'); 
          return __oldDoPostBack (eventTarget, eventArgument); 
         }  
        } 
    
Смежные вопросы