2008-10-22 7 views
0

Les gars, j'écris du code depuis plus de 15 ans, mais j'ai réussi à éviter le "développement Web" jusqu'à il y a 3 mois.Comment faire en sorte qu'Asp.Net redirige l'utilisateur vers son point de départ

J'ai hérité d'une ancienne application Asp.net (lancée en .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 conserve simplement de longues listes de valeurs. La liste (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 changer le valeur (ou valeurs, un élément de la liste peut être associé à plusieurs valeurs, par exemple nom et adresse et couleur préférée, race de chat.)

Actuellement, lorsque l'utilisateur appuie sur "Enregistrer" sur la page B, nous redirigeons retour à la page A. La page s'ouvre en haut de la liste, cela ennuie l'utilisateur car souvent plusieurs éléments en séquence doivent être configurés ensemble, et l'utilisateur doit 1. Se souvenir de l'élément qu'ils viennent de modifier, 2. faire défiler vers le bas pour cet article

Ce que je vouloir faire est d'avoir la liste ramener l'utilisateur à l'élément qu'ils ont édité, car souvent plusieurs éléments dans l'ordre devront être configurés ensemble.

Arrêt de pistolet le plus rapide. . . et continuer à lire

  1. Suggestions sur les lignes de « regrouper les éléments donc il y a moins dans la liste » sera considéré comme inutile
  2. des points valides que .Net 3.5 fait automatiquement, sera considéré comme inutile par moi (mais publiez-les de toute façon, cela peut aider un autre imbécile)
  3. Je pense que je pourrais le faire en affichant l'identifiant de l'élément édité lorsque vous rechargez la page A, et en faisant défiler la grille jusqu'à ce point, cependant Ma question est. . .

est-il une fonctionnalité pour ce faire que je ne sais pas (et quel est-il) et/ou
Quel est le moyen accepté de le faire?

Merci à l'avance B. Worrier

Répondre

3

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

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

Si cet objet serait un objet id 175. Ensuite, lorsque vous rediriger vers PageA, ajoutez un « # 175" sur la fin de l'url

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

@WebDude, merci, mais le réglage de la balise d'ancrage doit être

1

La façon la plus simple que vous pouvez faire est de passer de nouveau un id de PageB dans la chaîne de requête dans l'URL tout en réorientant retour à PageA après avoir enregistré en PageB.

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

et dans PageLoad de PageA, vous pouvez vérifier si cela provient de la page de détails d'édition en vérifiant s'il existe une valeur valide dans HttpContext.Current.QueryStrubg [" editedId "], s'il y en avait, cela signifie que c'est à partir de PageB. Vous pouvez utiliser cette valeur pour mettre en surbrillance ou sélectionner facilement la ligne dans la grille de données

Arrêt de pistolet le plus rapide. . . et continuez à lire ...

Un bon contrôle vous permet de modifier plusieurs lignes en même temps sur la même page, par exemple sur PageA, et de les enregistrer ensemble. Vérifiez votre contrôle Telerik pour DataGrid. Tu aimerais ça.

Questions connexes