Обновление страницы asp.net от управления в другом управлении

Я хочу обновить свою страницу asp.net после того, как кто-то нажмет кнопку "Add". Однако кнопка "Add" является частью пользовательского элемента управления в другом пользовательском элементе управления, и дочерний элемент управления и родительское управление оба перенесены в Панели Обновления: Код ниже сокращен для дисплея, существует причина, которая пользовательский элемент управления в другом пользовательском элементе управления

В первом управлении:

<ajax:UpdatePanel ID="Panel1" runat="server" UpdateMode="Always">
   <ContentTemplate>
             <uc:Control2 ID="Custom2" runat="server" />
   </ContentTemplate>
</ajax:UpdatePanel>

Затем внутри control2

<ajax:UpdatePanel ID="Panel2" runat="server" UpdateMode="Always">
   <ContentTemplate>
             <asp:LinkButton ID="AddButton" runat="server" OnClick="AddButton_Click"</asp:LinkButton>
   </ContentTemplate>
</ajax:UpdatePanel>
6
задан user204588 26 January 2010 в 19:57
поделиться

5 ответов

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

Page.Response.Redirect("mypagename.aspx");
4
ответ дан 17 December 2019 в 02:28
поделиться

Я предполагаю, что вы хотите обновить страницу, чтобы новый добавленный элемент отображается на странице ... правильно? Если это так, то вы можете получить databind ваш контроль данных как часть события addbutton_click. Например, если у вас есть сетка, показывающая элементы, то пользователь нажимает на кнопку «Добавить», чтобы добавить новый элемент, вы можете поместить следующий код в событии AddButton_Click для «Обновить» содержимое управления данными и отобразить вновь добавленные Пункт:

protected void AddButton_Click(object sender, EventArgs e)
    {
       myGrid.DataBind();
    }

Надеюсь, это поможет.

0
ответ дан 17 December 2019 в 02:28
поделиться

Вы не указываете конфигурацию вашего менеджера скрипта, однако предполагая, что у вас есть менеджер скрипта, сконфигурированный следующим образом:

<ajax:ScriptManager runat="server" ID="myScriptManager" EnablePartialRendering="true"></ajax:ScriptManager>

затем добавьте этот триггер к шаблону обновленияPanel для Control2, так что это выглядит как Следует:

<ajax:UpdatePanel ID="Panel2" runat="server" UpdateMode="Always">
    <ContentTemplate>
        <asp:LinkButton ID="AddButton" runat="server" OnClick="AddButton_Click"</asp:LinkButton>
    </ContentTemplate>
    <Triggers>
         <asp:PostBackTrigger ControlID="AddButton" />
    </Triggers>
 </ajax:UpdatePanel>

Это будет вызвать обратную сигнал, которая позволит вам перезагрузить связанные данные (в странице_load) и также повторно отобразит всю страницу, а не только содержимое вашей панели внутренней обновления.

0
ответ дан 17 December 2019 в 02:28
поделиться

Предполагая, что у вас нет контроля над управлением родительского пользователя, вы можете найти элемент управления, поисшив через элементы управления дочерним элементом управления родительским элементом управления ( FindControl ). Затем, как только у вас есть ссылка на него, вы можете добавить обработчик событий:

btnAddButton.OnClick += new EventHandler(MethodThatRefreshesPage);

, поскольку вы находитесь в обновлениях панелях, вам нужно будет что-то вроде RACK.REDIRECT (запрос.rawurl) для обновления всю страницу.

Конечно, если у вас есть контроль над родительским элементом управления пользователями, вы создаете свое собственное событие «Addclicked» и передайте подписки на кнопку ссылки ..OR, вы могли бы просто разоблачить саму LinkButton в качестве публичной собственности на Управление пользователем.

2
ответ дан 17 December 2019 в 02:28
поделиться

Как насчет пузырька событий ( http://odetocode.com/code/94.aspx )?

0
ответ дан 17 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: