I am trying to automatically expand to detail level the newly inserted master record (which works)
and then auto put the child into insert mode which I cant seem to get working.
It throws the 'index out of bounds' error on the :
Dim tableView As GridTableView = DirectCast(item.ChildItem.NestedTableViews(0), GridTableView)
tableView.IsItemInserted = True
Any advice appreciated.
Thanks in advance.
Snippet of code I am using below
and then auto put the child into insert mode which I cant seem to get working.
It throws the 'index out of bounds' error on the :
Dim tableView As GridTableView = DirectCast(item.ChildItem.NestedTableViews(0), GridTableView)
tableView.IsItemInserted = True
Any advice appreciated.
Thanks in advance.
Snippet of code I am using 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