2013-05-05 43 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();