Le problème vient lorsque vous ouvrez une page avec un seul enregistrement. Il remplit le Navmenu avec trois liens; "Premier", "1" et "Dernier".
Pour une raison quelconque, lorsque vous exécutez une requête de recherche qui reviendra plus d'une page, elle affiche toujours uniquement "Premier", "1" et "Dernier". De même, si vous commencez avec quatre pages et que votre requête de recherche ultérieure ne renvoie que deux enregistrements, il affiche toujours «Premier», «1», «2», «3», «4» et «Dernier». Donc, pour une raison quelconque, mais de nombreuses pages que vous commencez avec vous, vous obtiendrez toujours. Comment réinitialiser le compteur / affichage de la page? P>
Voici mon code C # Code-derrière: P>
<asp:Menu ID="NavMenu" runat="server" CssClass="menu" IncludeStyleBlock="false" Orientation="Horizontal" width="703px" BackColor="#CC3300" EnableViewState="true"> <Items> <asp:MenuItem NavigateUrl="~/Default.aspx" Text="First" Selectable="true" /> </Items> </asp:Menu>
3 Réponses :
Mon intuition me dit que vous ne postez pas de retour et c'est pourquoi vous devez effacer () les résultats. P> Ce code C # fonctionne bien. p>
Cette réponse est incorrecte, cela n'a pas corrigé mon problème.
C'est correct, je ne pouvais pas reproduire le problème avec le code exact que vous avez fourni! Et je vous ai donné un indice quant à la direction à poursuivre. Un bowvote pour avoir passé 1/2 heure à essayer de vous aider aussi? Rude. Ne fera plus ça.
Vous récupérez les données d'une procédure stockée nommée Votre SP devrait être quelque chose comme ceci: p> et en c #: p> donc dans votre et quelque part d'autre appelez le sp_search code> mais votre requête dans toutes les exécutions sera identique car vous ne spécifiez aucun paramètre dans votre procédure stockée (en fonction du code que vous avez posté. ). J'ai testé votre code en modifiant la procédure stockée et en envoyez un paramètre à l'adresse et en utilisant
NAVMENU.ITEMS.CLEAR () CODE> Comme vous l'avez dit et cela fonctionne bien pour moi:
page_load code> appelez le
runthesearch code> en passant un paramètre qui renvoie un enregistrement: p>
la méthode de la référence code> en passant un paramètre qui renvoie plusieurs enregistrements et résultat serait plus d'une page: p>
Ceci a finalement été résolu en mettant le menu dans un panneau de mise à jour. Donc, sur le côté aspx, j'ai maintenant:
<div class="clear hideSkiplink" id="NavDiv" style="margin:0 auto; display: table;"> <asp:UpdatePanel ID="NavUpdatePanel" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Menu ID="NavMenu" runat="server" CssClass="menu" IncludeStyleBlock="false" Orientation="Horizontal" width="703px" BackColor="#CC3300" EnableViewState="false"> <Items> <asp:MenuItem NavigateUrl="~/Default.aspx" Text="First" Selectable="true" /> </Items> </asp:Menu> </ContentTemplate> </asp:UpdatePanel> </div>
Au lieu de
Clear () Code> Vous pouvez utiliser
Supprimer (MENUITEM) CODE> pour supprimer sélectivement
Menuitems code>.
Pouvez-vous publier votre méthode de chargement de page?