2010-02-15 5 views
0

gridview에 바인딩 된 데이터 테이블이 있고 열 너비를 변경하려고합니다. 이것은 내가 사용하는 코드를 IT :A gridview 열의 너비 변경 문제

DataTable aTable = new DataTable("Words"); 
aTable.Columns.Add("word"); 

GridView1.DataSource = aTable; 
DataRow a = aTable.NewRow(); 
a[0] = "test"; 
aTable.Rows.Add(a); 
GridView1.DataBind(); 

GridView1.Columns[0].ItemStyle.Width = Unit.Pixel(200); 

실행은 그것이 데이터 테이블에 있고 그것이 같다 howerver 인덱스 0에 열이 발견되지 없다는 오류가 발생합니다 마지막 줄에 도달 할 때 웹 페이지.

왜 그리드 뷰에 열이 표시되지 않고이 문제를 해결할 수있는 방법이 있습니까?

+0

이 코드는 어디에 두는가? – Aaron

+0

오류가 발생했습니다. – Desecho

답변

0

열 수가 항상 0이됩니다.

자동 생성 중입니다. 따라서 <columns><asp:BoundField DataField="word" />으로 사용하면 효과가 있습니다.

+0

내가 그것을하고 내 datatable 함께 바인딩 2 동등한 열을 표시합니다. 열을 하나로 병합하지 않고 복제합니다. 어떻게 해결할 수 있습니까? – Desecho

+0

마크 업 따라서

+0

이 특성이 없습니다. AutoGenerateColumns = "False". 나는 그것에 대해 생각하지 않았다. 바보 나. 도와 주셔서 정말로 고맙습니다! – Desecho

0

그리드 뷰의 사전 렌더링 이벤트에 배치하려고합니다. 잘못된 지점에서이 작업을 수행하려고 시도했을 수 있습니다. 당신의 문 앞에이 추가

편집보십시오 : 당신이 명시 적으로있는 gridview에 <columns>을 정의하지 않는 한

if(GridView1.Columns.Count > 0) 
//do stuff here 
+0

GridView1_PreRender 함수를 사용하면 오류가 여전히 남아 있습니다. – Desecho

+0

GridView1.Columns.Count는 사실 0입니다. 이것은 실제 문제입니다. 문제는 그것이 왜 그렇게하고 어떻게 해결할 수 있는가입니다. – Desecho