none
Полное обновление страницы. RRS feed

  • Вопрос

  • приветствую,

    столкнулся с такой проблемой: у меня есть UpdatePanel внутри, которой  находится контрол FormView, внутри есть кнопка,

    т.е. все вместе примерно выглядит так:

    <asp:UpdatePanel runat="server" ... > 
    <ContentTemplate>
    <FormView ...>
    <InsertTemplate>
    
    ...
    
    <button runat="server" id="btnInsert" onserverclick="...">Сохранить</buton>
    
    ...
    
    </InsertTemplate>
    </ContentTemplate>
    </asp:UpdatePanel>
    
    

    по нажатию на кнопку сейчас происходит обновление UpdatePanel, а мне нужно обновить всю страницу целиком - как это сделать?

    PostBackTrigger тут не прокатит!  - т.к. <button> не является контролом по сути (через FindControl его точно не найти).

     

    5 апреля 2011 г. 18:08

Ответы

  • Один из вариантов, это вывести некую скрытую кнопку вне апдейт панели например, или в сам контентный шаблон апдейт панели. В последнем случае тогда надо зарегить ее через asp:PostBackTrigger в разделе Triggers апдейт панели. И повесить на событие клиентского клика твоей кнопки следующий код:

    __doPostBack('<% =Идентификатор_скрытой_кнопки.ClientID %>','');

    Второй вариант, это на сервере использовать метод ScriptManager'а "RegisterPostBackControl" для твоей серверной btnInsert. Получить саму кнопку ты точно можешь из коллекции темплейтов контрола FormView

    • Помечено в качестве ответа A.G.Sedov 6 апреля 2011 г. 17:45
    6 апреля 2011 г. 14:25

Все ответы

  • может попробовать все условия сохранить в сессию, сделать редирект на саму себя, вытащить условия из сессии  и сделать нужные операции над страницей. таким образом обновится вся страница.
    6 апреля 2011 г. 12:42
  • Один из вариантов, это вывести некую скрытую кнопку вне апдейт панели например, или в сам контентный шаблон апдейт панели. В последнем случае тогда надо зарегить ее через asp:PostBackTrigger в разделе Triggers апдейт панели. И повесить на событие клиентского клика твоей кнопки следующий код:

    __doPostBack('<% =Идентификатор_скрытой_кнопки.ClientID %>','');

    Второй вариант, это на сервере использовать метод ScriptManager'а "RegisterPostBackControl" для твоей серверной btnInsert. Получить саму кнопку ты точно можешь из коллекции темплейтов контрола FormView

    • Помечено в качестве ответа A.G.Sedov 6 апреля 2011 г. 17:45
    6 апреля 2011 г. 14:25
  • Спасибо,

    попробую метод с "RegisterPostBackControl", ато сейчас я решил уже проблему но несколько извратно, вот так:

    на onclik тега button повесил js скрипт, который перед PostBack-ом  перетаскивает кнопку за пределы UpdatePanel и она тогда обновляет всю страницу. Вовремя PostBack-а скачка кнопки не заметно,а после обновления страницы она уже на месте.


    6 апреля 2011 г. 17:45