2010-08-18 2 views
1

J'essaie d'afficher un jeu de données dans mon application ASP.NET. Il semble que lorsque je clique sur l'événement de bouton, les données n'apparaissent pas dans la grille.Affichage des données dans GridView à l'aide du jeu de données

J'ai une page de base avec les éléments suivants:

<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
     <asp:UpdatePanel runat="server" id="UpdatePanel" updatemode="Conditional"> 
      <ContentTemplate> 
       <asp:GridView ID="GridView1" runat="server" Width="200" Height="300"> 
       </asp:GridView> 
       <asp:Button runat="server" id="UpdateButton1" onclick="UpdateButton_Click" text="Update" />    
      </ContentTemplate> 
     </asp:UpdatePanel> 

    </form> 

Puis dans le code derrière, je donne les résultats suivants:

protected void UpdateButton_Click(object sender, EventArgs e) 
     { 
      string SQLConfigSettings = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString; 
      SqlConnection sqlconn = new SqlConnection(SQLConfigSettings); 

      sqlconn.Open(); 

      SqlDataAdapter adapter = new SqlDataAdapter("Select * from Student", sqlconn); 

      DataSet ds = new DataSet(); 
      adapter.Fill(ds); 

      GridView1.DataSource = ds; 
      UpdatePanel.Update(); 

     } 

Suis-je manque quelque chose? Doit-on afficher le jeu de données dans la grille? Lorsque je clique sur le bouton, rien ne se passe.

Merci :)

Répondre

1

Vous devez ajouter

GridView1.DataBind() juste après Gridview1.DataSource.

Il devient:

... 
      DataSet ds = new DataSet(); 
      adapter.Fill(ds); 

      GridView1.DataSource = ds; 
      GridView1.DataBind(); 
      UpdatePanel.Update(); 

Si vous avez besoin de plus d'informations sur la méthode .DataBind vérification MSDN on it

+0

Cela a fonctionné! Oublié de databind! :) – Mage

0
GridView1.DataSource = ds; 

Essayez de parler table à l'intérieur dataset. Quelque chose comme ds.Tables [0] ou si vous connaissez le nom de la table ds.Tables ["nom_table"]

+0

@shakhar, la valeur par défaut prend la première table, ce qui est inutile. – JonH

+0

ok .. et ce n'est pas @shakhar. ça aurait dû être @shekhar – Shekhar

0

Mettez un point d'arrêt sur la première ligne de code dans UpdateButton_Click et exécutez-le.

Ce point d'arrêt est-il atteint?

Parcourez chaque ligne de code après cela et examinez les valeurs des variables. Est-ce que le DataSet est rempli? Pouvez-vous voir le DataTable et son DataRows?

Si vous atteignez ce code d'événement et avez des données, alors vous devez regarder la liaison de données. Vous devez faire GridView.DataBind() immédiatement après avoir défini le DataSource et avant de faire le UpdatePanel.Update(). Alors vous devriez être bon à aller.

Questions connexes