Когда UpdatePanel сделает PostBack другим - PullRequest
1 голос
/ 31 января 2011

У меня сложный случай, поэтому я не могу его опубликовать.

У меня есть два UpdatePanels с двумя UserControls внутри, как показано ниже:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <A:u1 ID="u1" runat="server" />
    </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <A:u2 ID="u2" runat="server" />
    </ContentTemplate>
</asp:UpdatePanel>

В этом примере PostBack in u1 не влияет на u2.но в моем коде PostBack в первом UserControl сделал PostBack во втором.

Каковы ожидаемые причины ??

Спасибо за помощь.

1 Ответ

1 голос
/ 31 января 2011

Это сделано специально: при частичной обратной передаче вся страница отображается снова, даже если только часть полученной разметки отправляется клиенту. Таким образом, оба ваших пользовательских элемента управления снова проходят свои жизненные циклы, даже если обновляется только u1.

Если вы хотите обнаружить этот случай, вы можете использовать свойство IsInAsyncPostBack :

protected void Page_Load(object sender, EventArgs e)
{
    if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack) {
        // This is a partial postback.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...