2013-05-05 5 views
0

현재 DataTable의 코드에서 ASP.NET gridview를 채우는 데이 코드가 있습니다.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(); 
     } 
    } 

그러나 그리드의 선택, 정렬, 페이징 기능이 손실됩니다. 그래서 내가 Datatable 대신 SqlDataSource를 채우고 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(); 
관련 문제