2010-08-17 4 views
1

내 gridview에 대한 sqldatasources가 여러 개 있습니다. 모든 열이 자동 생성됩니다. 그러나 그들 모두는 몇 가지 일관된 필드를 가지고 있으며 드롭 다운 메뉴를 추가하는 것과 같은 편집 템플리트를 수정할 수 있도록 해당 필드를 템플릿 필드로 만들고 싶습니다. 이것이 가능한가? 그렇다면 어떻게? :-D 고마워!Gridview는 자동 생성 필드와 템플릿 필드를 결합합니다.

답변

2

자동 생성 된 특정 열을 템플릿 열로 바꾸려면 템플릿 열을 정의하고 코드에서 자동 생성 된 열을 숨기 만하면됩니다. 자동 생성 된 열은 기본적으로 템플릿 열 다음에 표시되므로 적절하게 배치하려면 코드에서도 출력을 바꿀 수 있습니다.

이 예제에서는 총 2 개의 템플릿 열과 2 개의 자동 생성 열이있는 gridview의 출력을 변경하고 있습니다. 자동 생성 된 마지막 열 (인덱스 3)을 템플릿 열 (index 1),하지만 내 자동 생성 된 열 (인덱스 2) 중 하나를 왼쪽으로 추가하려면 템플릿 열 (인덱스 1)로 전환해야합니다.

Private Sub gv_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv.RowDataBound 
    'hide Column 3' 
    e.Row.Cells(3).Visible = False 

    'Swap the results for Column 1 and Column 2' 
    Dim swap = e.Row.Cells(1).Text 
    e.Row.Cells(1).Text = e.Row.Cells(2).Text 
    e.Row.Cells(2).Text = swap 
End Sub 

이것은 매우 간단하며 별도의 클래스가 필요하지 않습니다.

+0

이름별로 표시 여부를 설정할 수있는 방법이 있습니까? 불행히도 열은 일관성이 있지만 항상 동일한 위치에있는 것은 아닙니다. – Shawn

+0

이름으로 인덱스를 가져옵니다 : 희미한는 Data.DataRowView으로 정수 희미한 Y가 X Y = e.Row.DataItem X = y.Row.Table.Columns.IndexOf를 ("상태") 불행히도에 대한 가시성을 설정 false는 해당 행에 대해서만 수행하므로 모든 열이 일치하지 않게됩니다. 셀 대신 전체 열을 숨기는 방법을 찾아야합니다. – Shawn

관련 문제