2015-01-10 3 views
0

Я пытаюсь использовать AJAX Toolkit для проекта. Я ранее делал только jquery AJAX. Все в порядке, у каждого из них есть свои препятствия.Сроки с ASP.NET AJAX TOOLKIT и JQUERY UI DIALOG

У меня есть страница со списком предметов. DBL Нажатие на элемент должно отображать форму редактирования в оверлее.

У меня это все в значительной степени работает. DBL Click вызывает функцию, которая выполняет _DoPostBack, а затем открывает диалоговое окно. Моя проблема - просто время. Функция DIALOG() копирует мой DIV перед обновлением.

Мой подход основан на всем, что я прочитал на сегодняшний день. Если есть лучший способ, с которым мне еще предстоит споткнуться, Id очень ценит точку в правильном направлении.

здесь, я думаю, важные части

Список является UserControl. Он загружается при загрузке страницы. Каждая строка имеет обработчик dblclick с правильным идентификатором. Мне проще всего создать эту серверную часть.

Форма редактирования является пользовательским элементом управления на панели обновления. Триггер - это событие ONSERVERCLICK для HTML-КНОПКИ (так было предложено сделать это).

В первой строке i двойной щелчок отображается диалог с пустой формой. Вторая строка, которую я дважды щелкаю, показывает диалог, который я видел в wwww/dbl clcik. И так далее, и так далее. Я могу сделать div видимым. То есть правильно загружаются. Это займет всего лишь короткое время.

Я думаю, что мне нужен способ передать обратный вызов __doPostBack, чтобы я мог открыть диалог, когда загрузка будет завершена. Я играл с функцией сна JS и использовал таймеры, это не тот путь.

Мой вопрос a) Есть ли хороший пример использования инструментария ajax, чтобы сделать что-то вроде этого. я посмотрел. Комбинация jquery.ajax, похоже, приносит отдельный набор проблем, создающих элементы управления, которые требуют диспетчера сценариев. Id скорее придерживайтесь w/ATK, если это возможно. (если есть хорошие примеры, ID будет рад их прочесть)

b) Есть ли способ действовать, когда __DoPostBack заканчивается. это кажется самым простым способом закончить то, что я пытаюсь сделать. Есть ли отдельный подход, который я должен использовать?

это функция JS, которая реагирует на row.dblClick

function showRouteDetails(id) { 

     var opts = { 
      title: "Route Details", 
      autoOpen: false, 
      modal: true, 
      buttons: [ 
       { 
        text: "OK", 
        click: function() { $(this).dialog("close"); } 
       }, 
       { 
        text: "cancel", 
        click: function() { alert('cancel'); } 
       } 

      ] 
     } 


     'call the postback to refresh the user control w/ the correct data 
     __doPostBack("ctl00$ContentPlaceHolder1$btnLoadRoute", String(id)); 

     'show the dialog. the named div surrounds the RouteEdit user control 
     'the first time i dbl click, its blank. The second time, it shows the 
     'first route.... its just happening too early 
     var div = $("#PutRouteHere"); 
     div.dialog(opts); 
     div.dialog('open'); 


     beep(); 
    } 

IM счастливы разместить любые другие предметы, если кто-то хочет, чтобы увидеть их

tyia Greg

ответ

1

Поскольку вы используете AjaxControlToolkit, я бы предложил способ, которым я успешно использую без jQuery UI Dialog.

Я использую Modal Popup, предназначенный для панели с UpdatePanel (внутри у вас есть форма редактирования). При щелчке DBL вы запускаете событие сервера, обновляющее контент UpdatePanel, и, наконец, показываете Modal Popup.

Надеюсь, это поможет.

+0

спасибо, это было не то, что я искал, но я не знал об этом сайте. вероятно, поможет мне в будущем. Я посмотрю на мода атак, это может решить мою проблему, оставив «в фреймворке» – greg

+0

kc мой список, а моя форма редактирования - это как пользовательские элементы управления. Я хотел бы выделить кнопку изображения (1 в строке) в списке. где бы вы положили pupupextender? вы знаете пример? – greg

+0

@greg Я бы использовал только один «PopupExtender». Поэтому вам лучше разместить его там, где вы размещаете свои пользовательские элементы управления (не для каждой строки!). – dario

0

так сразу после отправить вопрос, вы всегда думаете о новом пути Google это ...

Callback after __doPostBack()?

это размещение делает большую работу по решению вопроса точно.