2013-05-05 72 views
0

我目前有这个代码来填充ASP.NET GridView从后面的代码与DataTable。可能用SqlDataAdapter填充SqlDataSource?

protected void bindGridView() 
    { 
     SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["connstr"].ConnectionString); 
     SqlCommand cmd = sqlConn.CreateCommand(); 
     cmd.CommandText = "SELECT id AS 'Member ID', name AS Name, age AS Age, sympton AS Sympton, phone AS Phone, nirc AS NIRC, address AS Address FROM tbl_customer_profile WHERE id = @id"; 
     cmd.Parameters.AddWithValue("@id", txtSearchID.Text); 
     DataTable dtSearchResult = new DataTable(); 
     SqlDataAdapter daSearchResult = new SqlDataAdapter(); 

     try 
     { 
      sqlConn.Open(); 
      daSearchResult.SelectCommand = cmd; 
      daSearchResult.Fill(dtSearchResult); 
      gridSearchResult.DataSource = dtSearchResult; 
      gridSearchResult.DataBind(); 
     } 
     catch (SqlException ex) 
     { 
      lblStatus.Text = ex.Message; 
     } 
     finally 
     { 
      sqlConn.Close(); 
     } 
    } 

但我会失去网格的选择,排序,寻呼功能。所以我想,如果我可以填充到SqlDataSource而不是Datatable,然后绑定到Gridview,我不必手动处理选择,排序等?

但我不能只是简单地做像daSearchResult.Fill(sqlDataSource1);

有什么解决方法吗?

回答

0

有点像Neeraj说的,你可以用SqlDataSource直接绑定到gridview。 你不需要拥有所有的管道代码。

这是如何在asp.net

 <asp:GridView ID="grid" runat="server" DataSourceID="source"></asp:GridView> 
     <asp:SqlDataSource ID="source" runat="server"></asp:SqlDataSource> 

这是在C#中如何

 SqlDataSource source =new SqlDataSource(); 
     GridView grid = new GridView(); 

     grid.DataSource = s; 
     grid.DataBind();