So, I have a hierarchical Radgrid bound to two LinqToSQL Datasources, and I'm trying to get Updates working on the second level table. Inserts work perfectly but when attempting to update a row, I get an "Object Reference not set to an instance of an object" exception, but it doesn't cause any error to be displayed on the page. I can only see the error through Visual Studio while debugging. See ASPX code below. I have no code doing anything in the codebehind so far.
05.
<asp:UpdatePanel ID=
"upGrid"
runat=
"server"
ChildrenAsTriggers=
"true"
>
06.
<ContentTemplate>
07.
<telerik:RadGrid ID=
"masterGrid"
runat=
"server"
08.
AutoGenerateColumns=
"False"
09.
DataSourceID=
"linqDepots"
10.
OnUpdateCommand=
"masterGrid_UpdateCommand"
>
11.
<ClientSettings>
12.
<Selecting AllowRowSelect=
"true"
/>
13.
</ClientSettings>
14.
<GroupingSettings CollapseAllTooltip=
"Collapse all groups"
/>
15.
<MasterTableView DataSourceID=
"linqDepots"
DataKeyNames=
"dID,dCode"
>
16.
<Columns>
17.
<telerik:GridBoundColumn DataField=
"dID"
ForceExtractValue=
"Always"
Visible=
"false"
></telerik:GridBoundColumn>
18.
<telerik:GridBoundColumn DataField=
"dCode"
FilterControlAltText=
"Filter dCode column"
HeaderText=
"Depot Code"
ReadOnly=
"True"
SortExpression=
"Depot Code"
UniqueName=
"dCode"
>
19.
</telerik:GridBoundColumn>
20.
<telerik:GridBoundColumn DataField=
"dName"
FilterControlAltText=
"Filter dName column"
HeaderText=
"Depot Name"
ReadOnly=
"True"
SortExpression=
"Depot Friendly Name"
UniqueName=
"dName"
>
21.
</telerik:GridBoundColumn>
22.
<telerik:GridBoundColumn DataField=
"IncidentCount"
HeaderText=
"Incidents"
></telerik:GridBoundColumn>
23.
</Columns>
24.
<DetailTables>
25.
<telerik:GridTableView Name=
"Incident"
runat=
"server"
DataSourceID=
"linqIncidents"
CommandItemDisplay=
"Top"
AllowAutomaticInserts=
"true"
AllowAutomaticUpdates=
"true"
DataKeyNames=
"iID"
>
26.
<ParentTableRelation><telerik:GridRelationFields DetailKeyField=
"fk1_dID"
MasterKeyField=
"dID"
/></ParentTableRelation>
27.
<Columns>
28.
<telerik:GridEditCommandColumn Display=
"true"
EditText=
"Update"
></telerik:GridEditCommandColumn>
29.
<telerik:GridBoundColumn DataField=
"iID"
Visible=
"false"
ReadOnly=
"true"
></telerik:GridBoundColumn>
30.
<telerik:GridBoundColumn HeaderText=
"Acc Ref"
DataField=
"AccRef"
SortExpression=
"iID"
UniqueName=
"AccRef"
ReadOnly=
"true"
>
31.
<FilterTemplate>
32.
<telerik:RadComboBox ID=
"ddlFilterID"
runat=
"server"
Width=
"50px"
DataSourceID=
"LinqiID"
DataTextField=
"iID"
DataValueField=
"iID"
OnClientSelectedIndexChanged=
"SelectedRefIndexChanged"
SelectedValue=
'<%# ((GridItem)Container).OwnerTableView.GetColumn("AccRef").CurrentFilterValue %>'
AppendDataBoundItems=
"true"
>
33.
<Items><telerik:RadComboBoxItem Text=
"All"
Value=
""
/></Items>
34.
</telerik:RadComboBox>
35.
<telerik:RadScriptBlock ID=
"RadScriptBlock1"
runat=
"server"
>
36.
<script type=
"text/javascript"
> function SelectedRefIndexChanged(sender, args) { var tableView = $find(
" <%# ((GridItem)Container).OwnerTableView.ClientID %>"
); tableView.filter(
"AccRef"
, args.get_item().get_value(),
"EqualTo"
); } </script>
37.
</telerik:RadScriptBlock>
38.
</FilterTemplate>
39.
</telerik:GridBoundColumn>
40.
<telerik:GridDateTimeColumn DataField=
"iDate"
DataType=
"System.DateTime"
AllowFiltering=
"false"
ItemStyle-HorizontalAlign=
"Center"
FilterControlAltText=
"Filter iDate column"
HeaderText=
"Date"
SortExpression=
"iDate"
UniqueName=
"iDate"
DataFormatString=
"{0:d}"
></telerik:GridDateTimeColumn>
41.
<telerik:GridDropDownColumn DataField=
"fk2_dID"
DataSourceID=
"linqDrivers"
HeaderText=
"Driver"
ListTextField=
"dName"
ListValueField=
"dID"
></telerik:GridDropDownColumn>
42.
<telerik:GridDropDownColumn DataField=
"fk3_cID"
DataSourceID=
"linqVehicle"
HeaderText=
"Vehicle"
ListTextField=
"cReg"
ListValueField=
"cID"
></telerik:GridDropDownColumn>
43.
<telerik:GridCheckBoxColumn AllowFiltering=
"False"
DataField=
"iNotificationForm"
HeaderText=
"Notification Form"
SortExpression=
"iNotificationForm"
/>
44.
<telerik:GridCheckBoxColumn AllowFiltering=
"False"
DataField=
"iInterviewForm"
HeaderText=
"Interview Form"
SortExpression=
"iInterviewForm"
/>
45.
<telerik:GridCheckBoxColumn AllowFiltering=
"False"
DataField=
"iAccidentForm"
HeaderText=
"Accident Form"
SortExpression=
"iAccidentForm"
/>
46.
<telerik:GridBoundColumn AllowFiltering=
"False"
DataField=
"iEstimate"
HeaderText=
"Estimate"
SortExpression=
"iEstimate"
DataType=
"System.Decimal"
DataFormatString=
"{0:c}"
FilterControlAltText=
"Filter iEstimate column"
UniqueName=
"iEstimate"
/>
47.
<telerik:GridBoundColumn AllowFiltering=
"False"
DataField=
"iClarkesCost"
HeaderText=
"Cost"
SortExpression=
"iClarkesCost"
DataType=
"System.Decimal"
DataFormatString=
"{0:c}"
/>
48.
<telerik:GridCheckBoxColumn AllowFiltering=
"False"
DataField=
"iPaid"
HeaderText=
"Paid"
SortExpression=
"iPaid"
/>
49.
<telerik:GridBoundColumn AllowFiltering=
"False"
DataField=
"iDescription"
HeaderText=
"Description"
SortExpression=
"iDescription"
/>
50.
<telerik:GridBoundColumn DataField=
"iLocation"
HeaderText=
"Location"
SortExpression=
"iLocation"
/>
51.
<telerik:GridCheckBoxColumn DataField=
"iDriverAware"
Visible=
"false"
HeaderText=
"Driver Aware"
></telerik:GridCheckBoxColumn>
52.
<telerik:GridBoundColumn DataField=
"DriverAwareStr"
HeaderText=
"Driver Aware"
SortExpression=
"iDriverAware"
ReadOnly=
"true"
/>
53.
<telerik:GridCheckBoxColumn DataField=
"iDriverFault"
Visible=
"false"
HeaderText=
"Driver at Fault"
></telerik:GridCheckBoxColumn>
54.
<telerik:GridBoundColumn DataField=
"DriverFaultStr"
HeaderText=
"Driver at Fault"
SortExpression=
"iDriverFault"
ReadOnly=
"true"
/>
55.
<telerik:GridBoundColumn DataField=
"iAJGRef"
HeaderText=
"AJG Ref"
SortExpression=
"iAJGRef"
FilterControlAltText=
"Filter iAJGRef column"
UniqueName=
"iAJGRef"
ReadOnly=
"True"
/>
56.
</Columns>
57.
</telerik:GridTableView>
58.
</DetailTables>
59.
</MasterTableView>
60.
</telerik:RadGrid>
61.
<asp:LinqDataSource ID=
"linqDepots"
runat=
"server"
ContextTypeName=
"Forms_BI.RetorqueLinqDataContext"
Where=
"dID != 0"
62.
EntityTypeName=
""
TableName=
"Depots"
></asp:LinqDataSource>
63.
<asp:LinqDataSource ID=
"linqIncidents"
runat=
"server"
ContextTypeName=
"Forms_BI.RetorqueLinqDataContext"
64.
EntityTypeName=
""
65.
TableName=
"Incidents"
Where=
"fk1_dID == @fk1_dID"
66.
EnableInsert=
"True"
EnableUpdate=
"true"
OnUpdating=
"linqIncidents_Updating"
>
67.
<WhereParameters>
68.
<asp:Parameter Name=
"fk1_dID"
Type=
"Int32"
/>
69.
</WhereParameters>
70.
</asp:LinqDataSource>
71.
<asp:LinqDataSource ID=
"linqDrivers"
runat=
"server"
ContextTypeName=
"Forms_BI.RetorqueLinqDataContext"
EntityTypeName=
""
TableName=
"Drivers"
></asp:LinqDataSource>
72.
<asp:LinqDataSource ID=
"linqVehicle"
runat=
"server"
ContextTypeName=
"Forms_BI.RetorqueLinqDataContext"
EntityTypeName=
""
TableName=
"Cabs"
></asp:LinqDataSource>
73.
</ContentTemplate>
74.
</asp:UpdatePanel>