2010-01-19 3 views
3

Dans la mesure où je comprends UpdatePanels, ils doivent être invalidés séparément, c'est-à-dire que le déclenchement d'un UpdatePanel ne doit pas toucher les contrôles de l'autre panneau. Il fonctionne donc pour les contrôles en dehors de toute UpdatePanels, mais ceux qui sont à l'intérieur TOUTE UpdatePanel sont touchés par le déclenchement QUELQUE UpdatePanel:Comment créer des panneaux de mise à jour indépendants?

<form id="form1" runat="server"> 
<asp:ScriptManager ID="SM1" runat="server"/> 
<div> 
    <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> 
    <asp:UpdatePanel ID="update1" runat="server"> 
     <ContentTemplate> 
      <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
      <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    <asp:UpdatePanel ID="update2" runat="server"> 
     <ContentTemplate> 
      <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
      <asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</div> 
</form> 

code derrière:

 protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     TextBox1.Text = "Clicked 1"; 
     TextBox2.Text = "Shouldn't appear"; 
     TextBox3.Text = "Neither should this"; 
    } 

    protected void Button2_Click(object sender, EventArgs e) 
    { 
     TextBox2.Text = "Clicked 2"; 
     TextBox1.Text = "Shouldn't appear"; 
     TextBox3.Text = "Neither should this"; 
    } 

« ne devrait pas davantage » ne semble pas , mais « ne devrait pas apparaître » apparaît :(. Quelqu'un peut-il me aider à comprendre ce qui cause ce comportement?

Répondre

3

maintenant, je le vois, je l'ai oublié de mettre UpdateMode = attribut « conditionnel » aux UpdatePanels.

Code de travail:

<form id="form1" runat="server"> 
<asp:ScriptManager ID="SM1" runat="server"/> 
<div> 
    <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> 
    <asp:UpdatePanel ID="update1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
      <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    <asp:UpdatePanel ID="update2" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
      <asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</div> 
</form> 
+0

Oui. Vraiment cela devrait être le réglage par défaut, mais malheureusement ne l'était pas. – RichardOD

+0

Certainement - après tout, la réalisation de cette fonctionnalité est le sens de l'utilisation d'un UpdatePanel ... – Aaalf

Questions connexes