2013-05-27 3 views
1

В настоящее время у меня панель обновления на панели «Обновление». Например, у меня есть Мастер-страница, и все, что находится внутри главной страницы, находится в обновленной панели, которую я буду называть updatepanel1. Небольшая панель обновления, которая находится на странице aspx, которая использует главную страницу, называется updatepanel2.Обновление панели обновления на панели

Однако у меня есть объект таймера, и я хочу только обновить updatepanel2. Однако вся моя страница обновляется, а не только updatepanel2.

Как именно я должен его кодировать так, чтобы обновлялся только updatepanel2, а не Updatepanel1, так как я не хочу обновлять весь контент на моей главной странице.

Редактировать: Похоже, причина, по которой он не обновлялся, состоял в том, что я оставил обновленный метатег на моей странице и забыл его удалить.

+0

что такое «UpdateMode» этих двух? можете ли вы предоставить свой код? –

ответ

1

MasterPage

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebApplication1.Site1" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <asp:ContentPlaceHolder ID="head" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
      </asp:ScriptManager>    
      <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
      <ContentTemplate> <asp:Label Id="lblmaster" runat="server" Text="Label"></asp:Label> 
       <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> 
      </ContentTemplate>    
      </asp:UpdatePanel>  
    </div> 
    </form> 
</body> 
</html> 

ASPX PAGE

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication1.WebForm2" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:Label ID="labelform" runat="server" Text="Label"></asp:Label> 
      <asp:Timer ID="Timer1" runat="server" ontick="Timer1_Tick" Interval="10"> 
    </asp:Timer> 
    </ContentTemplate> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick"/> 
    </Triggers> 

    </asp:UpdatePanel> 

</asp:Content> 

CodeBehind из ASPX страницы

using System; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace WebApplication1 
{ 
    public partial class WebForm2 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     protected void Timer1_Tick(object sender, EventArgs e) 
     { 
      labelform.Text = DateTime.Now.ToString(); 
     // UpdatePanel1.Update(); 
      Label lblmaster = this.Master.FindControl("lblmaster") as Label; 
      lblmaster.Text = DateTime.Now.ToString(); 
     } 
    } 
} 

ПРИМЕЧАНИЯ:

  1. Set Mode Обновление как панели обновления для «Условный»

  2. Добавить контроль времени в updatePanel2

  3. Добавить AsynhronousTrigger внутри UpadatePanel2 и установить идентификатор элемента управления для таймера и отметьте eventas именем_события.

  4. Добавьте свой код в timer_tick evert в код позади и посмотрите.

важный момент здесь вы должны сделать асинхронную вызов к серверу и для обновления только конкретной микстуры страницы заданного режима обновлени updatepane к условному, и вы должны установить некоторые условия для обновления этой конкретной части в триггере

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

Благодарим вас за кодирование .........! :)

0

documentation from Microsoft рассказывает о различных ситуациях, которые вызывают обновление UpdatePanel. Я настоятельно рекомендую вам ограничить использование панели обновления только теми элементами управления, которые ей нужны, вместо того, чтобы обернуть всю страницу в ней.

Или, еще лучше, устраните UpdatePanels и используйте JQuery или Microsoft Ajax для обновления вашего контента. У этого есть меньше трудных побочных эффектов.

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