我正在使用autogeneratecolumns ="false"
并使用一些模板字段。
我使用时可以使用:
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 :(得分: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
答案 1 :(得分: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)