Changement sélectionnez la commande de sqldatasource au moment de l'exécution
HTML
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" />
<asp:BoundField DataField="name" HeaderText="name" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:database1ConnectionString %>"
SelectCommand="SELECT * from tblCourse"></asp:SqlDataSource>
Code
SqlDataSource1.SelectCommand =
"SELECT * from tblCourse where name='"+textbox1.text+"'";
SqlDataSource1.DataBind();
Mais Gridview ne change pas en fonction de la nouvelle commande select, même quand je suis en utilisant DataBind()
Comment pouvons-nous changer la vue de grille de la base sur une sélection de commande de source de données sql?
OriginalL'auteur user1263390 | 2012-03-24
Vous devez vous connecter pour publier un commentaire.
Ce qui se passe à cause de
GridView
's viewstate.Lors de la publication qui se passe, gridview stocke ses données à partir de l'état d'affichage. Ainsi, Vous pouvez soit désactiver l'affichage de l'état pour le contrôle GridView ( une bonne pratique ?? ) OU vous appeler
GridView.DataBind()
en plus deSqlDataSource.Databind();
MÉTHODE 1: Appel
GridView.DataBind();
MÉTHODE 2: désactiver l'Affichage de l'État pour le contrôle GridView ( Est-ce une bonne Pratique? ). Lorsque vous définissez cette
false
, il n'est PAS nécessaire d'appelerGridView.DataBind()
dans votrepage_Load
comme on le voit dans la MÉTHODE ci-dessus 1.Maintenant la partie qui doit être pris en charge de::
Assurez-vous que le
<asp:BoundField>
ou en général tout les champs déclarés et lié àGridView
de balisage sont également présents dans votre nouvelle requête sinon une erreur sera levée en disant quelque chose de similaire comme ci-dessous:OriginalL'auteur R.C
Vous pouvez soit éditer votre BoundField ou de modifier la propriété
AutoGenerateColumns
àtrue
.OriginalL'auteur shriek
Maintenant dans le Page_Load
OriginalL'auteur PraveenVenu
Jeu de générer automatiquement, à vrai et assurez-vous de supprimer tous les champs dans les champs d'édition de l'assistant. Si vous modifiez la commande select, il provoque le conflit.
OriginalL'auteur Jacque
Essayez d'ajouter le suivant :
avant la ligne
SqlDataSource.DataBind();
OriginalL'auteur geo