2013-08-06 6 views
2

SQL 쿼리를 사용하여 채운 DataTable이 있습니다. 그런 다음 GridViewDataTable으로 채 웠습니다.데이터 테이블의 열을 숨기는 방법

DataTable table = new DataTable(); 
table.Load(reader); 
gvAktivne.DataSource = table; 
gvAktivne.DataBind(); 

잘 작동하지만 이제 첫 번째 열을 숨기려고합니다. 추가 할 때 :

gvAktivne.Columns[0].Visible = false; 

나는 IndexOutOfRange 예외가 있습니다. 누구나 해결 방법을 알고 있습니까?

+0

당신이 확인 시겠어요 당신의 데이터 소스가> 0 –

+0

가에서 열을 제거 유효한 데이터 Rows.Count가있는 경우 GridView에 바인딩하기 전에 DataTable 인스턴스. – erdinger

+0

여기에 대답 : http://stackoverflow.com/a/3819831/542398 – Chains

답변

1

AutoGenerateColumnstrue으로 설정된 것으로 보이는 문제 문에 근거합니다. 열을 숨기려면 문제가 될 것입니다.DataBind() 다음에 해당 코드 행 을 발행해야하며 OnPreRender에 입력해야합니다.

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 
    gvAktivne.Columns[0].Visible = false; 
} 
0

이 시도 : 이것은 당신을 위해 작동 할 수

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
     e.Row.Cells[0].Visible = false; 
} 
0

:

DataTable data; 
data.Columns[0].ColumnMapping = MappingType.Hidden; 
관련 문제