2009-07-27 3 views
0

У меня есть модальный на странице, которая также содержит пользовательский элемент управления.Как обновить UpdatePanel в элементе управления со страницы?

При нажатии кнопки «ОК» в модальном режиме я хотел бы обновить UpdatePanel, который содержится в пользовательском элементе управления на странице.

В настоящее время кнопка «ОК» в модальном режиме выполняет обратную передачу по полной странице, я бы просто обновил панель, но я не уверен, как добавить ее в качестве триггера, поскольку она не находится под контролем UpdatePanel является.

Спасибо.


У меня есть частичный ответ ... Я могу обновить панель один раз, делая это:

Dim addTrigger As New AsyncPostBackTrigger 
addTrigger.ControlID = MyButton.ID 
addTrigger.EventName = "Click" 
MyUserControl.GetUpdatePanel.Triggers.Add(addTrigger) 

Это вызовет частичное последующее обратно в первый раз, но после этого впервые вызывает перезагрузку всей страницы. Есть идеи?

ответ

1

Вы можете явно добавить кнопку OK в качестве AsyncPostBackTrigger для UpdatePanel.

В ASPX разметкой для UpdatePanel:

<asp:UpdatePanel ID="updPanel" runat="server"> 
    <ContentTemplate> 
    .... 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="the control" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 

или в коде-за:

protected override void OnInit(EventArgs e) 
{ 
    AsyncPostBackTrigger trigger = new AsyncPostBackTrigger(); 
    trigger.ControlID = "the Control"; 
    trigger.EventName = "Click"; 

    updPanel.Triggers.Add(trigger); 

    base.OnInit(e);  
} 
0

Возможно, мне не хватает какой-то тонкости здесь, но не можете ли вы просто позвонить Update() method на панели обновления?

+0

Проблема в том, что метод (событие щелчка кнопки), где я бы назвал update(), вызвал полную отправку полной страницы. Он должен быть триггером, позволяющим странице знать только, чтобы обновить эту панель. – Ryan

+0

Ах, ты. Вам, вероятно, потребуется добавить asp: AsyncPostBackTrigger, ссылающийся на кнопку в триггерах панели обновления. –

0

Вы можете использовать следующий шаблон для управления панелью постбэк в JavaScript:

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm._panelsToRefreshIDs = UPComments.uniqueID; 
prm._doPostBack(eventTarget,eventArgument); 
theForm.submit(); 
0

Разве вы не можете просто добавить AsyncPostBackTrigger программно из отделенного кода?

Like This?

+0

Ссылка больше не существует. Измените этот ответ, чтобы добавить соответствующее содержимое из внешней ссылки, иначе этот ответ не будет иметь смысла. – zed

0

просто положить содержимое панели в панели обновления sothat вас есть:

Ваш пользовательский контроль здесь.

это также предотвратит исчезновение всплывающего окна, пока вы этого не захотите.

В вашем коде позади вы можете вызвать его с помощью popup.show (0 или pop.hide() и связать их с вашим пользовательским элементом управления с помощью addin gan event ot it и обработать его в своем коде страниц. Таким образом, ваш пользователь управление может направить всплывающее окно, что делать и когда. вы можете даже для того, чтобы обновить Hte панель обновления, если вам необходимо по какой-то причине.


для случая выше тха Т.И. просто понял, это тха tyou бледный Обновит Ehte панель в элементе управления. Создайте метод, которым управляет элемент, вызывающий метод обновления o панели обновления, затем запустите это событие со своей страницы. Это тот же самый принцип в обратном порядке. Используя событие хорошо, вы можете подключить свое приложение, чтобы сделать довольно классная вещь.

Смежные вопросы