Как я могу перезагрузить панель обновления на стороне клиента с помощью JavaScript? - PullRequest
1 голос
/ 27 мая 2009

У меня есть кнопка gridview, которую я программно создал, и я хочу загрузить панель обновлений на стороне клиента с отправленными данными. У меня есть поле скрытого значения, которое получает данные по нажатию кнопки gridview, и раскрывающийся список в моей панели обновлений зависит от этого значения.

Ответы [ 3 ]

1 голос
/ 27 мая 2009

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

Лучшим решением является использование ClientScriptManager.GetPostBackEventReference, которое дает вам более гибкий интерфейс с той же функциональностью. Обратите внимание, что GetPostBackEventReference и GetCallBackEventReference - это не одно и то же - первое вызывает перезагрузку страницы (частичное или полное, в зависимости от того, как настроены ваши UpdatePanels), а второе - нет.

1 голос
/ 27 мая 2009

Самый простой способ сделать это - вызвать __doPostBack со стороны клиента.

На стороне клиента метод button1_onclick вызывает:

__doPostBack('<%=UpdatePanel1.ClientID %>','Refresh:0,1,2');    //refresh update panel

На странице сзади добавьте следующий обработчик событий для захвата обратного вызова:

protected void UpdatePanel1_Load(object sender, EventArgs e)
{
    string arg = Request.Form["__EVENTARGUMENT"];

    if (string.IsNullOrEmpty(arg)) return;

    if (arg.StartWith("Refresh")
    {
         //parse data first then do your thing here...
    }
}

И, конечно же, не забудьте привязать событие к вышеуказанному методу:

protected void Page_Init(object sender, EventArgs e)
{           
    UpdatePanel1.Load += new EventHandler(UpdatePanel1_Load);
}
0 голосов
/ 27 мая 2009

мы используем метод __dopostback (), который имитирует обратную передачу и вызывает обновление панели обновления

__doPostBack('controlName','');

Не забывайте, что имя элемента управления - это HTML ID (который может содержать доллары и т. Д.), А не просто ASP.NET ID.

Насколько я знаю, вы можете либо вызвать этот метод и передать в поле скрытого значения, либо в div, в котором он находится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...