2016-12-19 1 views
0

AspxGridView를 사용하여 동적 데이터 바인딩을 수행하려고합니다. AutoGenerateColumn = true을 설정하면 선택한 열의 열 이름이 표시되지만 레코드는 표시되지 않습니다. 자동 생성 열에 false를 설정하면 페이지 번호가 증가하지만 레코드가 표시되지 않습니다.동적 databind를 사용하여 AspxGridView에서 레코드를 표시하는 방법?

Asp.net 코드

<dx:ASPxGridView ID="ASPxGridView1" runat="server"> 
    <SettingsPager PageSize="50"> 
    </SettingsPager> 
    <Settings ShowFilterRow="True" ShowGroupPanel="True" /> 
    <SettingsCommandButton> 
     <ShowAdaptiveDetailButton ButtonType="Image"></ShowAdaptiveDetailButton> 
     <HideAdaptiveDetailButton ButtonType="Image"></HideAdaptiveDetailButton> 
    </SettingsCommandButton> 
    <SettingsDataSecurity AllowDelete="False" AllowEdit="False" AllowInsert="False" /> 
    <SettingsSearchPanel Visible="True" /> 
</dx:ASPxGridView> 

CS 파일

protected void btnSearch_Click(object sender, EventArgs e) 
{ 
    string cs = ConfigurationManager.ConnectionStrings["HQMatajerConnectionString"].ConnectionString; 

    using (SqlConnection con = new SqlConnection(cs)) 
    { 
     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = con; 
     cmd.CommandText = "select * from [HQMatajer].[dbo].[TransactionEntry] where itemid='74876'"; 
     con.Open(); 
     SqlDataReader rd = cmd.ExecuteReader(); 

     //ASPxGridView1.Columns.Clear(); 
     ASPxGridView1.AutoGenerateColumns = true; 
     ASPxGridView1.DataSource = rd; 
     ASPxGridView1.DataBind(); 
    } 
} 

출력

If AutoGenerateColumns = true. 내가 거짓으로 설정하면

은 다음 이미지는 Output 2 if I set AutoGenerateColumns = false

+0

를이 체크 아웃 – jignesh

답변

0

SqlDataReader를 빠르게 가져 오는 레코드에 대한 좋은 해결책이지만의 GridView 개체의 데이터 소스에 기입하기 위해 같이 당신이 그것을 사용하지 않는 출력됩니다. 목표를 달성하려면 DataSet 또는 DataTable과 함께 사용해야합니다. 두 클래스 모두 SQLDataReader 개체에서 결과를 가져 오기 위해 Load 속성이 있습니다.

SqlDataReader rd = cmd.ExecuteReader(); 
DataTable dt= new DataTable(); 
dt.Load(rd); 
ASPxGridView1.DataSource = dt; 

또한 당신은 데이터 집합 또는 DataTable을 대신하여 DataReader를 사용할 필요가 https://msdn.microsoft.com/en-us/library/system.data.datatable.load(v=vs.110).aspx