or
Suppose you have a treeview with CheckBoxes and CheckChildNodes set, and you are using LoadOnDemand.
The user clicks on a checkbox for a parent node whose children have not yet been loaded.
What happens? Are the child nodes loaded? If not loaded, is the altered checked state of the child nodes nevertheless transmitted to the server upon postback?
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
|
<telerik:RadGrid ID=
"RadGrid1"
OnPreRender=
"RadGrid1_PreRender"
DataSourceID=
"SqlDataSource1"
OnItemInserted=
"RadGrid1_ItemInserted"
runat=
"server"
AutoGenerateColumns=
"False"
AllowSorting=
"True"
AllowMultiRowSelection=
"False"
AllowPaging=
"True"
PageSize=
"10"
GridLines=
"None"
AllowAutomaticInserts=
"True"
allowautomaticdeletes=
"true"
AllowAutomaticUpdates=
"true"
>
<PagerStyle Mode=
"NumericPages"
></PagerStyle>
<MasterTableView DataSourceID=
"SqlDataSource1"
CommandItemDisplay=
"Top"
DataKeyNames=
"custID"
AllowMultiColumnSorting=
"True"
GroupLoadMode=
"Server"
>
<NestedViewTemplate>
<asp:Panel runat=
"server"
ID=
"InnerContainer"
CssClass=
"viewWrap"
Visible=
"true"
>
<telerik:RadTabStrip runat=
"server"
ID=
"TabStip1"
MultiPageID=
"Multipage1"
SelectedIndex=
"0"
>
<Tabs>
<telerik:RadTab runat=
"server"
Text=
"Job Details"
PageViewID=
"PageView1"
>
</telerik:RadTab>
<telerik:RadTab runat=
"server"
Text=
"Scheduling"
PageViewID=
"PageView2"
>
</telerik:RadTab>
</Tabs>
</telerik:RadTabStrip>
<telerik:RadMultiPage runat=
"server"
ID=
"Multipage1"
SelectedIndex=
"0"
RenderSelectedPageOnly=
"false"
>
<telerik:RadPageView runat=
"server"
ID=
"PageView1"
>
<asp:Label ID=
"Label1"
Font-Bold=
"true"
Font-Italic=
"true"
Text=
'<%# Eval("custID") %>'
Visible=
"false"
runat=
"server"
/>
<telerik:RadGrid runat=
"server"
ID=
"OrdersGrid"
DataSourceID=
"SqlDataSource2"
ShowFooter=
"true"
AllowSorting=
"true"
EnableLinqExpressions=
"false"
>
<MasterTableView ShowHeader=
"true"
AutoGenerateColumns=
"False"
AllowPaging=
"true"
EditMode=
"InPlace"
DataKeyNames=
"OrderID"
PageSize=
"7"
HierarchyLoadMode=
"ServerOnDemand"
CommandItemDisplay=
"Top"
>
<Columns>
<telerik:GridNumericColumn SortExpression=
"Description"
HeaderText=
"Description"
HeaderButtonType=
"TextButton"
DataField=
"Description"
UniqueName=
"Description"
>
</telerik:GridNumericColumn>
<telerik:GridBoundColumn SortExpression=
"Price"
HeaderText=
"Price"
HeaderButtonType=
"TextButton"
DataField=
"Price"
UniqueName=
"Price"
>
</telerik:GridBoundColumn>
<telerik:GridDateTimeColumn SortExpression=
"PayOnline"
HeaderText=
"PayOnline"
HeaderButtonType=
"TextButton"
DataField=
"PayOnline"
UniqueName=
"Payonline"
>
</telerik:GridDateTimeColumn>
<telerik:GridBoundColumn UniqueName=
"Frequency"
DataField=
"FrequencyNum"
HeaderText=
"Frequency"
>
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
<asp:SqlDataSource ID=
"SqlDataSource2"
ConnectionString=
"<%$ ConnectionStrings:MainConnectionString %>"
ProviderName=
"System.Data.SqlClient"
SelectCommand=
"SELECT * FROM CustJobs Where custID = @custID "
runat=
"server"
>
<SelectParameters>
<asp:ControlParameter ControlID=
"Label1"
PropertyName=
"Text"
Type=
"String"
Name=
"custID"
/>
</SelectParameters>
</asp:SqlDataSource>
</telerik:RadPageView>
<telerik:RadPageView runat=
"server"
ID=
"PageView2"
Width=
"600px"
>
<asp:Label ID=
"Label2"
Font-Bold=
"true"
Font-Italic=
"true"
Text=
'<%# Eval("custID") %>'
Visible=
"false"
runat=
"server"
/>
<telerik:RadGrid runat=
"server"
ID=
"RadGrid2"
DataSourceID=
"SqlDataSource2"
ShowFooter=
"true"
AllowSorting=
"true"
EnableLinqExpressions=
"false"
>
<MasterTableView ShowHeader=
"true"
AutoGenerateColumns=
"False"
AllowPaging=
"true"
EditMode=
"InPlace"
DataKeyNames=
"OrderID"
PageSize=
"7"
HierarchyLoadMode=
"ServerOnDemand"
>
<Columns>
<telerik:GridNumericColumn SortExpression=
"FrequencyNum"
HeaderText=
"Frequency"
HeaderButtonType=
"TextButton"
DataField=
"FrequencyNum"
UniqueName=
"FrequencyNum"
>
</telerik:GridNumericColumn>
<telerik:GridBoundColumn SortExpression=
"FrequencyTerm"
HeaderText=
".."
HeaderButtonType=
"TextButton"
DataField=
"FrequencyTerm"
UniqueName=
"FrequencyTerm"
>
</telerik:GridBoundColumn>
<telerik:GridDateTimeColumn SortExpression=
"FirstClean"
HeaderText=
"FirstClean"
HeaderButtonType=
"TextButton"
DataField=
"FirstClean"
UniqueName=
"FirstClean"
>
</telerik:GridDateTimeColumn>
<telerik:GridBoundColumn UniqueName=
"NextDue"
HeaderText=
"Next Due"
HeaderButtonType=
"TextButton"
DataField=
"NextDue"
>
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
<asp:SqlDataSource ID=
"SqlDataSource3"
ConnectionString=
"<%$ ConnectionStrings:MainConnectionString %>"
ProviderName=
"System.Data.SqlClient"
SelectCommand=
"SELECT * FROM CustJobs Where custID = @custID "
runat=
"server"
>
<SelectParameters>
<asp:ControlParameter ControlID=
"Label1"
PropertyName=
"Text"
Type=
"String"
Name=
"custID"
/>
</SelectParameters>
</asp:SqlDataSource>
</telerik:RadPageView>
</telerik:RadMultiPage>
</asp:Panel>
</NestedViewTemplate>
<Columns>
<telerik:GridBoundColumn DataField=
"custID"
SortExpression=
"custID"
HeaderText=
"custID"
Visible=
"false"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression=
"Name"
HeaderText=
"Name"
HeaderButtonType=
"TextButton"
ItemStyle-Font-Size=
"Smaller"
DataField=
"Name"
UniqueName=
"Name"
ItemStyle-Width=
"5"
HeaderStyle-Width=
"5"
FilterControlWidth=
"5"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression=
"Addr1"
HeaderText=
"Address"
HeaderButtonType=
"TextButton"
ItemStyle-Font-Size=
"Smaller"
DataField=
"Addr1"
UniqueName=
"Addr1"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression=
"Addr2"
HeaderText=
""
HeaderButtonType=
"TextButton"
ItemStyle-Font-Size=
"Smaller"
DataField=
"Addr2"
UniqueName=
"Addr2"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression=
"Town"
HeaderText=
"Town"
HeaderButtonType=
"TextButton"
ItemStyle-Font-Size=
"Smaller"
DataField=
"Town"
UniqueName=
"Town"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression=
"County"
HeaderText=
"County"
HeaderButtonType=
"TextButton"
ItemStyle-Font-Size=
"Smaller"
DataField=
"County"
UniqueName=
"County"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression=
"PostCode"
HeaderText=
"PostCode"
HeaderButtonType=
"TextButton"
MaxLength=
"8"
ItemStyle-Font-Size=
"Smaller"
DataField=
"PostCode"
UniqueName=
"PostCode"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression=
"Tel"
HeaderText=
"Tel"
HeaderButtonType=
"TextButton"
MaxLength=
"11"
ItemStyle-Font-Size=
"Smaller"
DataField=
"Tel"
UniqueName=
"Tel"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression=
"Mobile"
HeaderText=
"Mobile"
HeaderButtonType=
"TextButton"
MaxLength=
"11"
ItemStyle-Font-Size=
"Smaller"
DataField=
"Mobile"
UniqueName=
"Mobile"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression=
"Email"
HeaderText=
"Email"
HeaderButtonType=
"TextButton"
ItemStyle-Font-Size=
"Smaller"
DataField=
"Email"
UniqueName=
"Email"
>
</telerik:GridBoundColumn>
<telerik:GridEditCommandColumn ButtonType=
"ImageButton"
UniqueName=
"EditCommandColumn"
>
<ItemStyle CssClass=
"MyImageButton"
/>
</telerik:GridEditCommandColumn>
</Columns>
</MasterTableView>
<ClientSettings AllowDragToGroup=
"true"
/>
</telerik:RadGrid>
Protected
Sub
RadGrid1_PreRender(
ByVal
sender
As
Object
,
ByVal
e
As
EventArgs)
Handles
RadGrid1.PreRender
'REPLACE with oleDB method b4 go live
'----------
Dim
strGUID2Find
As
String
strGUID2Find = Session(
"CustGUID"
)
'-------------
'use session var for debugging.. switch to OLEDB method before go live.
' Do nothing if RadGrid is in insert mode or no new item is inserted recently.
If
RadGrid1.MasterTableView.IsItemInserted
OrElse
strGUID2Find =
""
Then
Return
End
If
Dim
currentPageIndex
As
Integer
= RadGrid1.CurrentPageIndex
' loop thru grid to find latest rec inserted..
For
i
As
Integer
= 0
To
RadGrid1.PageCount - 1
' Compare CustID of each item in the RadGrid with the newly inserted item custID
For
Each
item
As
GridDataItem
In
RadGrid1.Items
If
strGUID2Find.Equals(item(
"CustID"
).Text)
Then
' Select the last inserted row
item.Selected =
True
item.Expanded =
True
Dim
tableView
As
GridTableView =
DirectCast
(item.ChildItem.NestedTableViews(0), GridTableView)
tableView.IsItemInserted =
True
currentPageIndex = -1
' flag exit
Exit
For
End
If
Next
' If item is found then exit RadGrid page loop
If
currentPageIndex.Equals(-1)
Then
Exit
For
End
If
' Go to next RadGrid page
currentPageIndex += 1
If
currentPageIndex >= RadGrid1.PageCount
Then
currentPageIndex = 0
End
If
RadGrid1.CurrentPageIndex = currentPageIndex
RadGrid1.Rebind()
Next
End
Sub