2009-11-18 7 views
0

동적으로 주어진 개수의 열을 가질 수있는 코드로 작성된 데이터 테이블이 있습니다. 첫 번째 열을 기반으로 새 TableRow를 추가하여 Gridview 내에서 행을 그룹화해야합니다. 이 요구 사항은 AutoGenerateColumns를 사용할 수 없음을 의미합니다. ItemDatabound 이벤트의 열에 대해 행/셀을 바인딩하는 데 사용하는 ItemTemplate 내에 테이블을 만들었습니다. 이것은 잘 작동하고 내가해야 할 일을합니다. 내가 가진 문제는 필자의 헤더를 컬럼의 이름에 바인드 할 수 없다는 것입니다. RowType이 ItemDatabound의 Header인지 확인하면 첫 번째 데이터 행에서 시작되므로 e.Row.DataItem을 사용할 수 없습니다. 결과적으로 나는 해당 열의 머리글 셀에 인쇄 할 ColumnName이 무엇인지 확인할 수 없습니다. 내가 생각프로그래밍 방식으로 Gridview에서 헤더 바인딩

if (e.Row.RowType = DataControlRowType.DataRow) then begin 

    if panlViewAllResults.Visible then begin 
     for i := 0 to lDataRow.DataView.Table.Columns.Count - 1 do begin 
     if Assigned(lDataRow.Item[i]) then begin 
      lCell := TableCell.Create; 
      lCell.Text := lDataRow.Item[i].ToString; 
      lRow1.Controls.Add(lCell); 
     end; 
     end; 

     lTable.Controls.Add(lRow1); 
    end; 
end; 

: 여기

내가 (코드 Delphi.net에 있지만 당신은 당신이 너무 C# 또는 VB를 사용하는 경우 gyst을 얻을 수 있어야합니다)이 된 DataRow에 사용하고 코드입니다 헤더에 대해 이렇게 할 수 있습니다. 그러나 확실하게 아닙니다 :

if (e.Row.RowType = DataControlRowType.Header) then begin 
    for i := 0 to lDataRow.DataView.Table.Columns.Count - 1 do begin 
      if Assigned(lDataRow.Item[i]) then begin 
       lCell := TableCell.Create; 
       lCell.Text := lDataRow.DataView.Table.Columns[i].ColumnName; 
      end; 
    end; 
    end; 

누군가가 이것을 비추어 볼 수 있습니다. 나는 조금이라도 말하려고 애를 썼다.

TIA 로이드

답변

1

당신은 이벤트 OnDataBound이 논리를 할 수 있습니다. 모든 행을 반복해야하므로이 시점에서 필요한 모든 데이터에 액세스 할 수 있습니다.

관련 문제