Обновить UpdatePanel на клиенте (Update() из JavaScript)
От: Zeiss  
Дата: 24.04.07 20:33
Оценка:
Как вызвать обновление <asp:UpdatePanel> из скрипта?
Без вложенной кнопки и без <asp:AsyncPostBackTrigger>?

Сейчас я извращаюсь с помощью невидимой кнопки:


<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        … content skipped …
        <asp:Button runat="server" ID="load" Text="Load" OnClick="load_Click" Style="position:absolute;left:-999px" />
    </ContentTemplate>
</asp:UpdatePanel>

<script type="text/javascript">
function updatePanel(){
    var load = document.getElementById("<%= load.ClientID %>");
    load.click(); // это капец!  :( 
}
</script>


Да хрен бы с ним, с таким кривым workaround-ом. Но только в Firefox это не работает — вызывается полный постбэк странички.
На форуме ASP.NET AJAX куча народу задавала этот вопрос, и никакого путного результата — все как-то изворачиваются.

Напоминаю, UpdatePanel.Update() на клиенте не определена
Может, есть возможность как-то дернуть AsyncPostBackTrigger? Ну, хоть как-то?!
Re: Обновить UpdatePanel на клиенте (Update() из JavaScript)
От: ivb22  
Дата: 25.04.07 06:23
Оценка:
Здравствуйте, Zeiss, Вы писали:

Z>Как вызвать обновление <asp:UpdatePanel> из скрипта?

Z>Без вложенной кнопки и без <asp:AsyncPostBackTrigger>?

Z>Сейчас я извращаюсь с помощью невидимой кнопки:


Специально этим не вопросом не заморачивался, но когда искал примеры кода для ajaxToolkit:ModalPopupExtender видел такую технику: копируется javascript, который нагенерил Ajax (например, для кнопки) и выполняется.
HTH
Re[2]: Обновить UpdatePanel на клиенте (Update() из JavaScri
От: RsdnUser  
Дата: 17.01.08 12:50
Оценка:
Z>>Как вызвать обновление <asp:UpdatePanel> из скрипта?

Чтобы в Firefox js-клик по кнопке отрабатывался асинхонно надо asp:Button внутри UpdatePanel установить атрибут UseSubmitBehavior="false". Это будет нормально работать и в FF и в IE
Re: Обновить UpdatePanel на клиенте (Update() из JavaScript)
От: FLUID Украина http://yuriy-okhmat.blogspot.com/
Дата: 17.01.08 16:08
Оценка:
http://www.jeffzon.net/Blog/post/Write-a-simple-control-to-refresh-UpdatePanels-from-client-side.aspx
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Мы не владеем тем, чего мы не понимаем....
Re: Обновить UpdatePanel на клиенте (Update() из JavaScript)
От: Norex Россия  
Дата: 19.01.08 19:16
Оценка:
Здравствуйте, Zeiss, Вы писали:
Z>Напоминаю, UpdatePanel.Update() на клиенте не определена
Z>Может, есть возможность как-то дернуть AsyncPostBackTrigger? Ну, хоть как-то?!

Мы эту задачу решали таким образом:
1. Добавляли кнопку в тригер панели и ставили ей CSS style="block:none;"
2. На страничке делали window.getElementByName('MyButton').Click();

Это универсальный способ, т.к. у нас на страницах чего только нет и Rad.AjaxManager и Ms.AjaxManager и ещё куча всего анархического.

P.S. Есть и более извращённые способы, но их приминение более исключение, чем "правило"
Re[2]: Обновить UpdatePanel на клиенте (Update() из JavaScri
От: Zeiss  
Дата: 21.01.08 15:53
Оценка:
N>1. Добавляли кнопку в тригер панели и ставили ей CSS style="block:none;"

display:none ?
Похоже, это единственное очевидное решение для одной из самых частых задач.

N>2. На страничке делали window.getElementByName('MyButton').Click();


document.getElementByID("<%= MyButton.ClientID %>").сlick(); ?

Ой, не говорите мине, шо сlick() кудахчет в FireFox!
Вместо сlick() мы используем __doPostBack(btn.name,"") и не жужжим
Re[3]: Обновить UpdatePanel на клиенте (Update() из JavaScri
От: Norex Россия  
Дата: 22.01.08 16:47
Оценка:
Здравствуйте, Zeiss, Вы писали:
Z>Ой, не говорите мине, шо сlick() кудахчет в FireFox!
Z>Вместо сlick() мы используем __doPostBack(btn.name,"") и не жужжим

А наш проект не дружит с ФФ и поющим браузером.
Т.ч. нужды заморачиваться не было \m/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.