2010-07-27 8 views
0

나는 autogeneratecolumns ="false"을 사용 중이며 일부 템플릿 필드를 사용하고 있습니다.DataGrid에서 열의 순서를 변경하는 방법 동적으로?

tempColumnNew = Me.DataGrid.Columns(oldColIndex) 
tempColumnOld = Me.DataGrid.Columns(newColIndex) 

Me.DataGrid.Columns.RemoveAt(oldColIndex) 
Me.DataGrid.Columns.RemoveAt(newColIndex) 

Me.DataGrid.Columns.AddAt(oldColIndex, tempColumnOld) 
Me.DataGrid.Columns.AddAt(newColIndex, tempColumnNew) 

을하지만 다시 게시에 추가 된 열을 기억 나던, 그래서 모든 게시에 대한 추가해야합니다 : 내가 사용하는 경우

그것은 작동합니다.

구현하는 더 좋은 방법이 있습니까?

답변

0
    This code worked for me: 
        oldColIndex = Me.DataGrid.Columns.IndexOf(col) 
        tempColumnNew = Me.DataGrid.Columns(oldColIndex) 
        tempColumnOld = Me.DataGrid.Columns(newColIndex) 

        Me.DataGrid.Columns.AddAt(oldColIndex, tempColumnOld) 
        Me.DataGrid.Columns.RemoveAt(oldColIndex + 1) 
        Me.DataGrid.Columns.AddAt(newColIndex, tempColumnNew) 
        Me.DataGrid.Columns.RemoveAt(newColIndex + 1) 
0

Page_Load 이벤트에서 IsPostBack을 사용하고 있습니까? 귀하의 회신 .... 에 대한

If Not IsPostBack Then 
    tempColumnNew = Me.DataGrid.Columns(oldColIndex) 
    tempColumnOld = Me.DataGrid.Columns(newColIndex) 

    Me.DataGrid.Columns.RemoveAt(oldColIndex) 
    Me.DataGrid.Columns.RemoveAt(newColIndex) 

    Me.DataGrid.Columns.AddAt(oldColIndex, tempColumnOld) 
    Me.DataGrid.Columns.AddAt(newColIndex, tempColumnNew) 
End If 
+0

덕분에 나는 IsPostBack을 사용하고 있지만,이 코드는 데이터 그리드에 데이터를 바인딩 호출되는 Binddata 방법 ..... 에 ... .... – Som

+0

바인드 데이터가 포스트 백이 아니고 포스트 백이라도 호출됩니다 ... – Som

관련 문제