2010-08-18 76 views
1

我想显示一个数据集到我的ASP.NET应用程序。看起来,当我点击按钮事件时,数据不会显示在网格中。在代码使用数据集在GridView中显示数据

<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> 

那么后面,我有以下:

我有以下的基本页面

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(); 

     } 

我缺少的东西?将数据集收起来放在网格中? 当我点击按钮什么都没有发生。

谢谢:)

回答

1

你需要Gridview1.DataSource之后添加

GridView1.DataBind()

所以就变成:

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

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

如果您需要了解的.DataBind方法检查的详细信息MSDN on it

+0

这工作!忘记数据绑定! :) – Mage 2010-08-18 13:04:15

0
GridView1.DataSource = ds; 

尝试提内数据集表。类似于ds.Tables [0]或者如果您知道表名称ds.Tables [“table_name”]

+0

@shakhar,默认情况下需要第一个表,这是不必要的。 – JonH 2010-08-18 12:33:55

+0

好吧,它不是@shakhar。它应该是@shekhar – Shekhar 2010-08-18 12:48:32

0

将一个断点放在UpdateButton_Click的第一行代码中并运行它。

是否达到了该断点?

之后逐行遍历每行代码并检查变量值。 DataSet是否被填满?你能看到DataTable及其DataRows吗?

如果您到达此事件代码并获得数据,那么您需要查看数据绑定。您需要在设置DataSource之后和执行UpdatePanel.Update()之前立即执行GridView.DataBind()。那么你应该很好去。