Обновляйте панель обновления с помощью триггеров, когда другая панель обновления делает это, потому что первая должна иметь UpdateMode = Conditional - PullRequest
3 голосов
/ 30 июня 2010

У меня есть несколько панелей обновлений на странице asp.net.Я хочу, чтобы updatepanel 2 обновлялся, когда updatepanel 1 делает, но UpdatePanel 2 имеет свой атрибут UpdateMode, установленный на Conditional и ChildrenAsTrigger = False, потому что у него есть другой updatePanels внутри, и мне нужно контролировать способ его обновления.Я пытался сделать триггер для другой панели обновления, но это, кажется, не работает, может быть, я что-то упустил

Есть ли способ сделать это?

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

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 30 июня 2010

Вы можете позвонить updatePanelProdList.Update() внутри файла кода на вашей странице. Местом для вызова этого метода в вашем сценарии будет обработчик событий для изменения категории LinkButton.

0 голосов
/ 15 марта 2011

Спасибо, вот что я ищу!У меня есть 2 «панели обновлений» на моей странице, одна с моей формой, а другая с flexiGrid (не .net версия, чистый jQuery).

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

function doPostBackAsync(eventName, eventArgs) {
    var prm = Sys.WebForms.PageRequestManager.getInstance();

    if (!Array.contains(prm._asyncPostBackControlIDs, eventName)) {
        prm._asyncPostBackControlIDs.push(eventName);
    }

    if (!Array.contains(prm._asyncPostBackControlClientIDs, eventName)) {
        prm._asyncPostBackControlClientIDs.push(eventName);
    }
    __doPostBack(eventName, eventArgs);
}

<a title="Edit" href="javascript:doPostBackAsync('Edit','2');">Edit</a>

и затем я обрабатываю это как

string EventName = Request.Form["__EVENTTARGET"].ToString();
int EventValue = Request.Form["__EVENTARGUMENT"].ToString();

после того, как определим EventName и EventValue, вызывая метод ниже

protected void Edit(int id)
{
    //load the form here
    UpdatePanel1.Update(); //do the trick right, without this line unable to show form fields and other stuff with newly loaded data
}

regards.

(простите за мой английский)

...