2013-09-13 2 views
1

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

вот мой код.

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false"> 
      <ContentTemplate> 
       <asp:Label ID="Label1" Text="Remaining Time" runat="server"></asp:Label> 
       <asp:Label ID="lblTimeSpan" Visible="false" Text="" runat="server"></asp:Label> 
       <asp:Label ID="lblRemainingTime" Text="" runat="server"></asp:Label> 
       <asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Enabled="true" Interval="1000" ></asp:Timer>`//Timer` 
      </ContentTemplate> 
      <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
      </Triggers> 
     </asp:UpdatePanel> 
+0

Ваши ярлыки также обновляются, когда обновляется Updatepanel? Где вы устанавливаете контент для ярлыков? –

+0

Я поменял таймер только на код позади. выпадающая панель находится на другой панели обновлений, но она также обновляется. –

ответ

2

Чтобы Изолировать UpdatePanels друг от друга, установите свойство: UpdateMode в Conditional для каждой панели обновления. После этого определите триггеры для своих панелей обновления.

Пример:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:Label ID="Label1" runat="server" /><br /> 
     <asp:Button ID="Button1" runat="server" Text="Update Panel 1" 
     OnClick="Button1_Click" />   
    </ContentTemplate> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 

// II-й панели Update

<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> 
<ContentTemplate> 
    <asp:Label ID="Label2" runat="server" ForeColor="red" /> 
    <asp:Button ID="Button2" runat="server" Text="Update Panel 2" 
     OnClick="Button2_Click" /> 
</ContentTemplate> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click" /> 
</Triggers> 
</asp:UpdatePanel> 

Теперь замковое событий:

// Кнопка Нажмите 1

protected void Button1_Click(object sender, EventArgs e) 
    { 
     Label1.Text = DateTime.Now.ToLongTimeString(); 

    } 

// Кнопка Нажмите 2

protected void Button2_Click(object sender, EventArgs e) 
{ 
    Label2.Text = DateTime.Now.ToLongTimeString(); 
} 

Как вы можете проверить сейчас, при нажатии на Button1, только первый UpdatePanel обновляется. Это не будет иметь никакого эффекта на панели 2 Update [UpdatePanel2]

Similary, нажмите на Button2, только 2-й UpdatePanel будет обновляться. Первая UpdatePanel не обновится.

Итак, в вашем случае установите UpdateMode = "Условное" для updatePanel, содержащего раскрывающийся список. И убедитесь, что триггеры определены [Элементы управления здесь] для вашей второй панели обновления не содержатся в firstUpdatePanel.

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