Question

Les gars, je compose du code depuis plus de 15 ans, mais j'ai réussi à éviter le & # 8220; Développement Web & # 8221; jusqu'à il y a 3 mois.

J'ai hérité d'une application Asp.net héritée (démarrée dans .net 1.1; nous sommes maintenant sur .Net 2.0), c'est l'outil d'administration de notre produit.

À plusieurs endroits, l'outil d'administration gère simplement de longues listes de valeurs.

La liste (pouvant contenir plus de 200 éléments) apparaît dans un GridView (page A), l'utilisateur clique sur un bouton d'édition pour un élément, ce qui les amène à une page d'édition pour l'élément (page B) où ils peuvent modifier la valeur. (ou des valeurs, un élément de la liste peut être associé à plusieurs valeurs, par exemple nom et adresse, couleur préférée, race du chat..)

Actuellement, lorsque l'utilisateur appuie sur & # 8220; Enregistrer & # 8221; sur la page B, nous redirigeons vers la page A. La page s'ouvre en haut de la liste, cela gêne l'utilisateur car souvent plusieurs éléments en séquence devront être configurés ensemble, et l'utilisateur doit 1. Se souvenir de l'élément édité, 2. faites défiler jusqu'à cet élément

Ce que je veux, c'est que la liste ramène l'utilisateur à l'élément qu'il vient d'éditer, car plusieurs éléments dans l'ordre doivent souvent être configurés ensemble.

L'arrêt des armes le plus rapide . . . et continuez à lire

  1. Les suggestions figurant sur les lignes de & # 8220; regroupez les éléments de manière à en réduire le nombre dans la liste & # 8221; sera considéré comme inutile
  2. Les points valides indiquant que .Net 3.5 le fait automatiquement, seront considérés comme inutiles par moi (mais les poster de toute façon, cela pourrait aider un autre pauvre imbécile)
  3. Je pense pouvoir le faire en affichant l'identifiant de l'élément modifié lors du rechargement de la page A et en faisant défiler la grille jusqu'à ce point, mais Ma question est . . .

Existe-t-il une fonctionnalité que je ne connais pas (et en quoi consiste-t-elle)? et / ou
Quel est le moyen accepté de le faire?

Merci d'avance B. Plus inquiet

Était-ce utile?

La solution

Ceci pourrait être réalisé en utilisant des balises d'ancrage. Lorsque vous exportez vos éléments sur la page A, définissez une balise d'ancrage à côté de chaque élément, comme suit:

<a name="#175"></a>

Où cet élément serait l'ID d'article 175. Ensuite, lorsque vous redirigerez vers PageA, ajoutez un " # 175 " sur la fin de l'URL

Response.Redirect("PageA.aspx#175");

Autres conseils

La méthode la plus simple consiste à renvoyer un identifiant provenant de PageB dans la chaîne de requête de l'URL lors de la redirection vers PageA après avoir enregistré le résultat dans PageB.

par exemple. www.example.com/PageA.aspx?editedId=89

et dans PageLoad of PageA, vous pouvez vérifier si cela provient de la page de détail de l'édition en vérifiant s'il existe une valeur valide dans HttpContext.Current.QueryStrubg [" éditéId "]], s'il y en avait un, cela veut dire que c'est de PageB. Vous pouvez utiliser cette valeur pour mettre en évidence ou sélectionner facilement la ligne dans la grille de données

L'arrêt du pistolet le plus rapide. . . et continuez à lire ...

Un bon contrôle vous permet d’éditer plusieurs lignes en même temps sur une même page, par exemple sur PageA, et de les enregistrer ensemble. Vérifiez votre contrôle Telerik pour la grille de données. Vous adorerez ça.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top