Greetings
I'm currently working on a project with RadGrid.
The website has one page and a RadGrid without any user settings.
By clicking buttons I change the type of the grid, its columns and its data.
Only when I have a Grid with two levels (e.g. DetailView), it's Impossible to replace it with other data that also has two levels.
For example, let's define:
A - One Level Grid (e.g. NO DetailView)
B - Grid with two levels (mastertabalView+DetailView)
A --> B (e.g. replace grid's data that has one level with data of two levels)
RESULT: REPLACEMENT SUCCESS
B --> A
RESULT: REPLACEMENT SUCCESS
B --> B
RESULT: REPLACEMENT FAIL
B --> A --> B
RESULT: REPLACEMENT FAILS
ASPX:
VB.NET:
Thanks,
Daniel
I'm currently working on a project with RadGrid.
The website has one page and a RadGrid without any user settings.
By clicking buttons I change the type of the grid, its columns and its data.
Only when I have a Grid with two levels (e.g. DetailView), it's Impossible to replace it with other data that also has two levels.
For example, let's define:
A - One Level Grid (e.g. NO DetailView)
B - Grid with two levels (mastertabalView+DetailView)
A --> B (e.g. replace grid's data that has one level with data of two levels)
RESULT: REPLACEMENT SUCCESS
B --> A
RESULT: REPLACEMENT SUCCESS
B --> B
RESULT: REPLACEMENT FAIL
B --> A --> B
RESULT: REPLACEMENT FAILS
ASPX:
<telerik:RadGrid ID="RadGrid1" Height="100%" runat="server" EnableHeaderContextMenu="true"> <ClientSettings> <Scrolling AllowScroll="True"></Scrolling> </ClientSettings></telerik:RadGrid>VB.NET:
001. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load002. If Not IsPostBack Then003. Session("st") = Nothing004. Session("IsGridToBEShowen_flag") = 0005. End If006. End Sub007. 008. 009. Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click010. Session("Report_ID") = 1011. ReplaceReport012. End Sub013. 014. 015. Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click016. Session("Report_ID") = 2017. ReplaceReport018. End Sub019. 020. Protected Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click021. Session("Report_ID") = 3022. ReplaceReport023. End Sub024. 025. 026. 027.Private Sub ReplaceReport()028. 029. rep.ID = Session("Report_ID")030. 031. 032. Pre_Report()033. setGridProperties()034. 035. End_Set_Report()036. 037. End Sub038.''''''''''''''''''''''''''''''''''''''''''039. 040. Private Sub Pre_Report()041. RadGrid1.Enabled = True042. RadGrid1.Visible = True043. Session("st") = Nothing044. Session("isGridInit") = True045. 046. Session("st") = rep.Data 'get specific DataSet into Session047. End Sub048. 049. Private Sub End_Set_Report()050. 051. RadGrid1.DataSource = CType(Session("st"), DataSet).Tables(0)052. 053. RadGrid1.DataBind()054. RadGrid1.Rebind()055. Session("IsGridToBEShowen_flag") = 1056. 057. End Sub058. 059. ''''''''''''''''''''060. ''''''''''''''''''''''''''''''''''''''''''''061. Private Sub setGridProperties()062. 063. 'set grid columns properties064. If Session("RTL") Then065. RadGrid1.MasterTableView.Dir = GridTableTextDirection.RTL066. Else067. RadGrid1.MasterTableView.Dir = GridTableTextDirection.LTR068. End If069. 070. If RadGrid1.MasterTableView.DetailTables.Count > 0 Then071. RadGrid1.MasterTableView.DetailTables(0).DataSource = Nothing072. RadGrid1.MasterTableView.DetailTables(0).DataSource = New Object() {}073. RadGrid1.MasterTableView.DetailTables(0).Rebind()074. 075. RadGrid1.MasterTableView.DetailTables.Remove(0)076. End If077. 078. Dim Number_Of_Tables As Integer = CType(Session("st"), DataSet).Tables.Count079. 080. If Number_Of_Tables = 2 Then081. RadGrid1.DataSource = Nothing082. RadGrid1.Rebind()083. 'add details View084. Dim detailsView1 As GridTableView = New GridTableView()085. detailsView1.Name = "Details"086. detailsView1.DataKeyNames = New String() {"Internal_ID"}087. RadGrid1.MasterTableView.DetailTables.Add(detailsView1)088. RadGrid1.MasterTableView.DataKeyNames = New String() {"Internal_ID"}089. RadGrid1.Rebind()090. 091. End If092. 093. 094. RadGrid1.MasterTableView.TableLayout = GridTableLayout.Fixed095. RadGrid1.ClientSettings.Selecting.AllowRowSelect = True096. RadGrid1.AllowSorting = True097. RadGrid1.AllowPaging = True098. RadGrid1.AllowMultiRowSelection = True099. RadGrid1.ClientSettings.Scrolling.UseStaticHeaders = True100. RadGrid1.ShowHeader = True101. RadGrid1.AllowFilteringByColumn = True102. RadGrid1.MasterTableView.AllowFilteringByColumn = True103. RadGrid1.ClientSettings.AllowDragToGroup = True104. RadGrid1.ShowGroupPanel = True105. RadGrid1.MasterTableView.HeaderStyle.Width = Unit.Pixel(200)106. 107. RadGrid1.ClientSettings.Selecting.UseClientSelectColumnOnly = True108. RadGrid1.ClientSettings.EnableRowHoverStyle = True109. End Sub110. 111. Private Sub FirstSortGrid(colum_name As String)112. Dim expression As GridSortExpression = New GridSortExpression()113. expression.FieldName = colum_name114. expression.SortOrder = GridSortOrder.Ascending115. RadGrid1.MasterTableView.SortExpressions.AddSortExpression(expression)116. Session("isGridInit") = False117. End Sub118. 119. Protected Sub RadGrid1_NeedDataSource(sender As Object, e As GridNeedDataSourceEventArgs) Handles RadGrid1.NeedDataSource120. 121. Dim fl As Integer = Session("IsGridToBEShowen_flag")122. If fl = 1 Then123. RadGrid1.DataSource = CType(Session("st"), DataSet).Tables(0)124. 125. End If126. 127. End Sub128. 129. 130. 131. Private Sub RadGrid1_DetailTableDataBind(sender As Object, e As GridDetailTableDataBindEventArgs) Handles RadGrid1.DetailTableDataBind132. Dim dataItem As GridDataItem = CType(e.DetailTableView.ParentItem, GridDataItem)133. Select Case e.DetailTableView.Name134. Case "Details"135. Dim ConnectID As String = dataItem.GetDataKeyValue("Internal_ID").ToString()136. CType(Session("st"), DataSet).Tables(1).DefaultView.RowFilter = ""137. CType(Session("st"), DataSet).Tables(1).DefaultView.RowFilter = "Internal_ID = " & ConnectID138. e.DetailTableView.DataSource = CType(Session("st"), DataSet).Tables(1).DefaultView139. End Select140. End SubThanks,
Daniel