2009-03-19 8 views
1

J'ai un GridView qui est lié à un ObjectDataSource, et je traitais la ligne complète de sélection en utilisant la solution standard provdided partout de mettre cette ligne dans le OnRowDataBound():ASP.NET 3.5.1 GridView dans le panneau de mise à jour requerying sur la ligne select?

e.Row.Attributes["onclick"] = this.Page.ClientScript.GetPostBackEventReference(this, "Select$" + e.Row.RowIndex); 

Tout cela travaille à la légère, sauf que je remarque que mon ObjectDataSource est en train d'être touché chaque fois que la sélection de ligne change. Je ne fais pas un BindData() n'importe où dans le code de sélection de ligne derrière, et puisque les données ne changent pas à cause de la sélection je ne vois vraiment pas pourquoi la grille doit se relier. Je laisse le gridview gérer la pagination et le tri, mais encore une fois, la sélection ne change pas le contenu, donc je ne pense pas que cela devrait l'affecter.

J'ai essayé d'activer l'état d'affichage pour la grille (très petite quantité de données) et cela n'a eu aucun effet. J'ai mis le UpdatePanel aux mises à jour conditionnelles et les enfants comme triggers = false, mais cela a causé que les données soient encore interrogées mais qu'aucune mise à jour ne se produise à l'écran (LOL!).

Est-ce que les gourous GridView veulent prendre un coup à celui-ci?

Répondre

1

Il vous manque les éléments suivants dans votre Page_Load():

If (!IsPostBack) 
{ 

} 

C'est les développeurs quelque chose manque beaucoup! Suivez vos événements et vous verrez probablement que quelque part un événement est déclenché OnPostBack et vous appelez votre code DB.

+0

En fin de compte non ... mais ça ne m'aurait pas surpassé! LOL. Je pense que j'ai décidé que la page est trop compliquée pour se résumer à un exemple simple, et ça fonctionne comme ça, et je ne passe pas les données dans l'état de vue de cette façon, donc j'ai décidé d'être heureux. Merci quand même! :-) – John

Questions connexes