10
votes

Comment travailler avec deux panneaux de mise à jour sur la même page .aspx

J'ai deux panneaux de mise à jour sur une page. Et je veux mettre à jour les deux conditions dans différentes conditions. Mais je ne sais pas pourquoi cela ne se produit pas. J'ai des déclencheurs spécifiés pour les deux mais pas utiles, ci-dessous est mon code.

S'il vous plaît laissez-moi savoir où je me trompe. p>

En réalité, il existe trois listes déroulantes dans le premier panneau de mise à jour lorsque leur SeciPeyDExchange est tiré, le contenu du second panneau de mise à jour est également mis à jour. P>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
<ContentTemplate>
    <asp:Calendar ID="calSchedule" runat="server" NextPrevFormat="FullMonth" OnDayRender="calSchedule_DayRender"
        OnVisibleMonthChanged="calSchedule_VisibleMonthChanged">
        <DayHeaderStyle CssClass="dayheaderStyle" />
        <NextPrevStyle />
        <OtherMonthDayStyle BackColor="#ffffff" />
        <SelectedDayStyle />
        <TitleStyle CssClass="titleStyle" />
        <TodayDayStyle BackColor="#ffffa0" ForeColor="#6699cc" />
        <WeekendDayStyle />
        <DayStyle CssClass="dayStyle" />
    </asp:Calendar>
</ContentTemplate>
<Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnSearch" EventName="Click" />
</Triggers>
</asp:UpdatePanel>


5 commentaires

Obtenez-vous une erreur?, Si puis collez ce message d'erreur?


Non, je ne reçois aucune erreur.


Avez-vous essayé au code BTNSearch_Click derrière vous pouvez mettre à jour les commandes de 2e panneau 2e!


Juste pour la clarté de tous ceux qui voient cela - «Trois listes de liste déroulante dans le premier panneau de mise à jour lorsque leur sélection de SECLEDEXCHANGE est tiré, le contenu de la deuxième mise à jour de mise à jour est également mises à jour» est-ce le problème? Mettre à jour le panneau 2 Se rafraîchir quand il ne devrait-il pas?


Oui exactement c'est le problème (problème).


4 Réponses :


-2
votes

Si vous utilisez des panneaux de mise à jour imbriqués, reportez-moi ci-dessous le code exemple:

<asp:UpdatePanel id="UpdatePanel1" UpdateMode="Conditional" runat="server">
            <ContentTemplate>
                <fieldset>
                <legend>Parent UpdatePanel</legend>
                Last refresh <%=DateTime.Now.ToString() %> <br />
                <asp:Button ID="Button1" runat="server" Text="Refresh Outer Panel" />
                <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                    <ContentTemplate>
                        <fieldset>
                        <legend>Nested UpdatePanel</legend>
                         Last refresh <%=DateTime.Now.ToString() %> <br />
                        <asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
                        </fieldset>
                    </ContentTemplate>
                </asp:UpdatePanel>
                </fieldset>
            </ContentTemplate>
        </asp:UpdatePanel>


2 commentaires

Cette ligne <% = Quelque chose%> du code ne fonctionne généralement pas sur les panneaux de mise à jour.


Je n'utilise pas les panneaux de mise à jour imbriqués. Veuillez étudier mon code et question avec soin.



-1
votes

Supprimer l'autopostback = "true" des listes déroulantes si vous voulez qu'un asyncpostback se produise. En outre, qu'est-ce qui ne va pas exactement en ce moment? Les panneaux ugumes ne mettent pas à jour du tout?

éditer. Supprimez également les enfants constructeurs car il n'est pas nécessaire à cette occasion


3 commentaires

Si je supprimais Autopostback = TRUE, mon événement SELECTEDINDEXchangeed ne fonctionnera pas.


Et quel est exactement le problème alors? La page post-elle en arrière ou ne fait rien?


La page postée comme sélectionnée signé et le contenu du second panneau de mise à jour est également rafraîchi. Et et j'ai aussi essayé que cellesSastriggiggiggiggiggiggiggiggiggiggiggiggiggiggiggiggiggiggiggiggiggiggiggiggigging, mais que ce ne fonctionnant pas



21
votes

Tout d'abord, je voudrais rappeler l'utilisation de updateemode

  • Toujours Le panneau mettra à jour son contenu sur chaque poste de la page, ils peuvent être des postes de rendu partiels ou des messages complets, dans les deux cas, le contenu du panneau sera Mise à jour

  • conditionnel Le contenu du panneau ne sera mis à jour que lorsque différentes conditions sont remplies:

    • Par défaut, les événements déclenchés par ses objets enfants déclencheront une mise à jour, vous pouvez modifier ce paramètre de comportement ChildrenAsTriggers = "false"

    • Lorsque vous déclarez une gâchette dans la section de la section update

    • Lorsque vous appelez explicitement la updatepanel.update () méthode

    • Les messages de page complets déclencheront la mise à jour

      Le code suivant effectue les éléments suivants:

      • Chaque updatepanel est mis à jour lorsque son enfant commande augmente un événement

      • Le UpdatePanel 1 nommé: up1 sera mis à jour uniquement lorsque son enfant contrôle un événement

      • L'UpdatePanel 2 nommé UP2 sera mis à jour lorsque son enfant contrôle soulever un événement

      • Le point updatepanel 2 nommé UP2 sera également mis à jour lorsque les déclencheurs définis sont tirés, dans ce cas, lorsque la liste Dropdownlist nommé ddl1onPanel1 sur la UpdatePanel 1 tire son SelectedIndexChanged

      • Le point updatepanel 2 nommé up2 sera également mis à jour lorsque la liste nom_fo> nommée ddl2onpanel1 sur l'UPDOWPANEL 1 soulève son SELECTELLIDEXCHANGED , car dans le code, cela appelle explicitement: this.up2.update ();

        Je pense que cela modifie ce code, vous pouvez réaliser votre objectif souhaité, il suffit de la copier en coller sur une nouvelle page et de l'exécuter

        vérifier le code suivant (Voyez comment les étiquettes montrant la date sont affectées de différentes manières en fonction des événements soulevés):

        code derrière xxx

        aspx < PRE> XXX

        Sortie simple

        Entrez la description de l'image ici <> < / p>

        Vous pouvez modifier le updateemode = "TOUJOURS" sur la carte UPDATE 2, pour voir la différence, si vous le faites, ce panneau sera mis à jour sur chaque poste, soit des messages complets ou les messages provenant de la UpdatePanel1


0 commentaires

0
votes

J'ai utilisé cela avec succès pour 4 UpdatePanel.

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnableScriptGlobalization="true" CombineScripts="false" ScriptMode="Release">
</asp:ToolkitScriptManager>


0 commentaires