데이터 그룹화 행에 행 그룹화 행을 추가하려고합니다. 그것은 첫 번째 응답에서 잘 작동하지만 포스트 백에서 나는 "viewstate를로드하지 못했습니다"오류가 발생했습니다. 의 GridView의 RowDataBound 이벤트에 대한 코드가있다어떻게하면 viewstate 오류가 발생하지 않고 데이터 바인딩 된 gridview에 행을 추가 할 수 있습니까?
:
Private Sub AddGroupingRow(ByRef eRow As GridViewRow, ByVal Css As String, ByVal ColSpan As Integer, ByVal Txt As String)
Dim cell As New TableCell()
cell.ColumnSpan = ColSpan
cell.CssClass = "Spacing FieldCell"
cell.Text = Txt
Dim row As New GridViewRow(-1, -1, DataControlRowType.DataRow, DataControlRowState.Normal)
row.CssClass = Css
row.Cells.Add(cell)
Dim tbl As Table
tbl = eRow.Parent
tbl.Rows.AddAt(eRow.RowIndex + 1, row)
End Sub
Private Prev_Client_ID As Integer = -1
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim dr As Data.DataRowView = TryCast(e.Row.DataItem, Data.DataRowView)
If dr IsNot Nothing AndAlso dr.Row.RowState <> Data.DataRowState.Added Then
Dim Client_ID As Integer = dr.Item("Client_ID")
If Client_ID <> Prev_Client_ID Then AddGroupingRow(e.Row, "Group", 8, dr.Item("Client_Name"))
Prev_Client_ID = Client_ID
End If
End If
End Sub
나는 그것이 데이터 소스에서 그룹화 행을 쉽게 만들 수 있다고 알고 있지만,이 코드에서 파생, 내가 다른 그리드에 일부 기반을 만들려면 사이트에서.
시간과 링크에 감사드립니다. 저는 디나모로 컨트롤을 만드는 데 익숙해졌습니다. 저는 이미 ASP.NET Page Life Cycle을 존중하며 디나모로 컨트롤을 만드는 데 익숙합니다. 그리고 저는 정말로 어떤 종류의 문제가 발생할 것이라고 생각했습니다. 문제는 : 초기화 단계에서 GridView를 바인딩 할 수없고 일종의 해결 방법을 생각할 수 없다는 것입니다. 아마도 포스트 백의 Init에서 행을 다시 만들어야 할 것입니다 ... 많은 작업이 있지만 그렇지 않습니다. ? 데이터 소스 또는 언급 된 것을 망칠 생각입니다. 보자. 감사! –