2012-03-22 4 views
0

친구, 다음 코드를 사용하여 asp.net 응용 프로그램에서 GridView를 채우고 있습니다. 열 수가 grdExport 0을 왜왜 GridView에 대한 열 개수가 0입니까?

?dsRecord.Tables[0].Columns.Count 
    16 
    ?dsRecord.Tables[0].Rows.Count 
    37 
    ?grdExport.Rows.Count 
    37 
    ?grdExport.Columns.Count 
    0 

가, 누군가가 말해 줄 수하십시오 : 나는 체크있을 때

GridView grdExport = new GridView(); 
    DataSet dsRecord = objHelper.gReturnDataSet(CommandType.Text, strSql); 

    grdExport.DataSource = dsRecord.Tables[0]; 
    grdExport.DataBind(); 

지금 문제가 직접 실행 창에, 나는 다음과 같은 결과를 받고 있어요?

+1

* 자동으로 생성 된 바운드 열 필드는 Columns 컬렉션에 추가되지 않습니다. * [그러므로 카운트는 0이됩니다.] (http://msdn.microsoft.com/en/ -us/library/system.web.ui.webcontrols.gridview.autogeneratecolumns.aspx) – V4Vendetta

+0

할당하려는 소스 테이블과 동일하게 계산하려면 ** 16 ** – V4Vendetta

+0

@ V4Vendetta 감사합니다. 나는 그것을 모른다. – Sukanya

답변

1

GridView.Columns Property

확인이 :

열] 속성 (컬렉션) GridView 컨트롤에서 렌더링받을 모든 명시 적으로 선언 된 열 필드를 저장하는 데 사용됩니다. 은 Columns 컬렉션을 사용하여 열 필드의 컬렉션을 프로그래밍 방식으로 관리 할 수도 있습니다.

그리드에 추가 된 열의 열이 더 많으면 자동 생성 된 열을 추가하지 않은 열의 수가 표시됩니다.

<asp:GridView ID="GridView1" runat="server"> 
      <Columns> 
       <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" /> 
      </Columns> 
     </asp:GridView> 

이 지금은 열 당신의 결과를 표시됩니다의 1로 계산 : 당신은 자동으로 다음 열을 생성 표시하는 경우는 0 확인이 마크 업을 표시합니다


//있는 gridview에 열을 추가하기 전에

?dtResult.Rows.Count 
9 
?dtResult.Columns.Count 
2 
?GridView1.Rows.Count 
9 
?GridView1.Columns.Count 
0 

열을 gridview에 추가 한 후.

?GridView1.Columns.Count 
1 
1

기본적으로 자동 생성 된 열이 true이기 때문에 counts = 0이 표시됩니다. 수동 열을 추가하면 열 수가 표시됩니다.
작성하는 경우 grdExport.AutoGenerateColumns = false; 페이지에서 어떤 열도 렌더링되지 않습니다.

0

대신? grdExport.Columns.Count. 디자인 타임에 gridview에 열 컬렉션을 추가하면이 수가 계산됩니다. grdExport.Rows [0] .Cells.Count

+0

에 대해 autogeneatedcolumns = true로 설정하면 솔루션이 헤더가 아닌 행에있는 데이터를 가져 오는 데 도움이됩니다. 어쨌든 고마워. – Sukanya

+0

헤더 "HeaderRow.Cells.백작. "거기에. –

+0

네, 도와 줘서 고마워. – Sukanya

0

데이터 바인딩 후 GridViewColumn 열이 설정됩니다. 따라서 열 수를 찾으려면 MessageBox.Show을 보여주세요.

grdExport.AutoGenerateColumns = false; 
MessageBox.Show(grdExport.Columns.Count.ToString()); 
1

페이지에 gridView를 배치하지 않았기 때문일 수 있습니까? 다음과 같이하십시오. PlaceHolder1.Controls.Add (grdExport)

관련 문제