Hi,
I think i've stumbled upon another problem with the AllowAutomaticUpdates property.
Are these properties only meant to work if you set the DataSourceId declaratively? I've done some testing and that seems the case, because if i set the datasource in the NeedDataSource event, automatic updates don't seem to work.
This is my Datasource definition:
I think i've stumbled upon another problem with the AllowAutomaticUpdates property.
Are these properties only meant to work if you set the DataSourceId declaratively? I've done some testing and that seems the case, because if i set the datasource in the NeedDataSource event, automatic updates don't seem to work.
This is my code:
void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) | |
{ | |
if (!e.IsFromDetailTable) | |
{ | |
string typeID = Request["typeId"]; | |
if (Convert.ToInt32(typeID) == "1") | |
{ | |
RadGrid1.MasterTableView.DataSource = JobsSourceSuburb; | |
} | |
else | |
{ | |
RadGrid1.MasterTableView.DataSource = JobsSourceTech; | |
} | |
} | |
} |
This is my Datasource definition:
<asp:SqlDataSource ID="JobsSourceTech" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" | |
ProviderName="System.Data.SqlClient" OldValuesParameterFormatString="original_{0}" | |
SelectCommand="SELECT * FROM [View_test_RadSchedulerDetails] WHERE [TechnicianId] = @TechnicianId AND [ScheduleDate] = @ScheduleDate" | |
UpdateCommand="UPDATE [Jobs] SET [Vacant] = @Vacant, [Recall] = @Recall, [Confirmed] = @Confirmed WHERE [JobId] = @original_JobId" | |
ConflictDetection="CompareAllValues"> | |
<SelectParameters> | |
<asp:Parameter Name="TechnicianId" Type="Int32" Direction="Input"/> | |
<asp:Parameter Name="ScheduleDate" Type="DateTime" Direction="Input" /> | |
</SelectParameters> | |
<UpdateParameters> | |
<asp:Parameter Name="original_JobId" Type="Int32" /> | |
<asp:Parameter Name="Recall" Type="Boolean" /> | |
<asp:Parameter Name="Vacant" Type="Boolean" /> | |
<asp:Parameter Name="Confirmed" Type="Boolean" /> | |
</UpdateParameters> | |
</asp:SqlDataSource> | |
<asp:SqlDataSource ID="JobsSourceSuburb" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" | |
ProviderName="System.Data.SqlClient" | |
SelectCommand="SELECT * FROM [View_test_RadSchedulerDetails] WHERE [SuburbId] = @SuburbId AND [ScheduleDate] = @ScheduleDate" | |
UpdateCommand="UPDATE [Jobs] SET [Vacant] = @Vacant, [Recall] = @Recall, [Confirmed] = @Confirmed WHERE [JobId] = @original_JobId" | |
ConflictDetection="CompareAllValues"> | |
<SelectParameters> | |
<asp:Parameter Name="SuburbId" Type="Int32" Direction="Input"/> | |
<asp:Parameter Name="ScheduleDate" Type="DateTime" Direction="Input" /> | |
</SelectParameters> | |
<UpdateParameters> | |
<asp:Parameter Name="JobId" Type="Int32" /> | |
<asp:Parameter Name="Recall" Type="Boolean" /> | |
<asp:Parameter Name="Vacant" Type="Boolean" /> | |
<asp:Parameter Name="Confirmed" Type="Boolean" /> | |
</UpdateParameters> | |
</asp:SqlDataSource> |
This is my RadGrid definition (its a slightly large one):
<telerik:RadGrid ID="RadGrid1" runat="server" Skin="Web20" AllowSorting="True" GridLines="None" AutoGenerateColumns="False" AutoGenerateEditColumn="True" AllowAutomaticUpdates="True"> | |
<GroupPanel ID="GroupPanel" Style="width: 100%;"> | |
</GroupPanel> | |
<ExportSettings> | |
<Pdf FontType="Subset" PaperSize="Letter" /> | |
<Excel Format="Html" /> | |
</ExportSettings> | |
<MasterTableView CommandItemDisplay="None" CurrentResetPageIndexAction="SetPageIndexToFirst" DataKeyNames="JobId" | |
Dir="LTR" Frame="Border" TableLayout="Auto" AllowAutomaticUpdates="True" EditMode="EditForms" Name="JobRow"> | |
<EditFormSettings> | |
<EditColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType"> | |
</EditColumn> | |
</EditFormSettings> | |
<ExpandCollapseColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" | |
Resizable="False"> | |
<HeaderStyle Width="20px" /> | |
</ExpandCollapseColumn> | |
<RowIndicatorColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" | |
Visible="False"> | |
<HeaderStyle Width="20px" /> | |
</RowIndicatorColumn> | |
<Columns> | |
<telerik:GridEditCommandColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" | |
UniqueName="AutoGeneratedEditColumn"> | |
<HeaderStyle Width="30px" /> | |
</telerik:GridEditCommandColumn> | |
<telerik:GridBoundColumn CurrentFilterFunction="NoFilter" DataField="OrderNumber" | |
FilterListOptions="VaryByDataType" ForceExtractValue="None" HeaderText="Order Number" | |
ReadOnly="True" UniqueName="OrderNumber"> | |
</telerik:GridBoundColumn> | |
<telerik:GridBoundColumn CurrentFilterFunction="NoFilter" DataField="AccountName" | |
FilterListOptions="VaryByDataType" ForceExtractValue="None" HeaderText="Account" | |
ReadOnly="True" UniqueName="Account Name"> | |
</telerik:GridBoundColumn> | |
<telerik:GridBoundColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" | |
ForceExtractValue="None" HeaderText="Address" SortExpression="Address" UniqueName="column" DataField="Address" ReadOnly="True"> | |
</telerik:GridBoundColumn> | |
<telerik:GridBoundColumn CurrentFilterFunction="NoFilter" DataField="Suburb" FilterListOptions="VaryByDataType" | |
ForceExtractValue="None" HeaderText="Suburb" ReadOnly="True" UniqueName="Suburb"> | |
</telerik:GridBoundColumn> | |
<telerik:GridCheckBoxColumn CurrentFilterFunction="NoFilter" DataField="Vacant" FilterListOptions="VaryByDataType" | |
ForceExtractValue="None" HeaderText="Vacant" SortExpression="Vacant" UniqueName="Vacant"> | |
</telerik:GridCheckBoxColumn> | |
<telerik:GridCheckBoxColumn CurrentFilterFunction="NoFilter" DataField="Recall" FilterListOptions="VaryByDataType" | |
ForceExtractValue="None" HeaderText="Recall" SortExpression="Recall" UniqueName="Recall"> | |
</telerik:GridCheckBoxColumn> | |
<telerik:GridCheckBoxColumn CurrentFilterFunction="NoFilter" DataField="Confirmed" FilterListOptions="VaryByDataType" | |
ForceExtractValue="None" HeaderText="Confirmed" SortExpression="Confirmed" UniqueName="Confirmed"> | |
</telerik:GridCheckBoxColumn> | |
<telerik:GridDateTimeColumn ReadOnly="True" CurrentFilterFunction="NoFilter" DataField="DueDateTime" FilterListOptions="VaryByDataType" | |
ForceExtractValue="None" HeaderText="Due Date" SortExpression="DueDateTime" UniqueName="DueDateTime" DataType="System.DateTime" DataFormatString="{0:d}"> | |
</telerik:GridDateTimeColumn> | |
</Columns> | |
<DetailTables> | |
<telerik:GridTableView runat="server" CommandItemDisplay="None" | |
CurrentResetPageIndexAction="SetPageIndexToFirst" DataKeyNames="JobId,JobCodeId" DataSourceID="JobCodesSource" | |
Dir="LTR" Frame="Border" TableLayout="Auto" HierarchyDefaultExpanded="false"> | |
<EditFormSettings> | |
<EditColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType"> | |
</EditColumn> | |
</EditFormSettings> | |
<ParentTableRelation> | |
<telerik:GridRelationFields DetailKeyField="JobId" MasterKeyField="JobId" /> | |
</ParentTableRelation> | |
<ExpandCollapseColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" | |
Resizable="False"> | |
<HeaderStyle Width="20px" /> | |
</ExpandCollapseColumn> | |
<RowIndicatorColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" | |
Visible="False"> | |
<HeaderStyle Width="20px" /> | |
</RowIndicatorColumn> | |
<Columns> | |
<telerik:GridDropDownColumn DataField="CodeId" DataSourceID="CodeSource" ListTextField="CodeName" | |
ListValueField="CodeId" HeaderText="Code" UniqueName="CodeId" CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" ForceExtractValue="None"> | |
</telerik:GridDropDownColumn> | |
<telerik:GridNumericColumn CurrentFilterFunction="NoFilter" DataField="QuantityRequired" | |
DataType="System.Decimal" FilterListOptions="VaryByDataType" ForceExtractValue="None" | |
HeaderText="QuantityRequired" SortExpression="QuantityRequired" UniqueName="QuantityRequired" NumericType="Number"> </telerik:GridNumericColumn> | |
<telerik:GridNumericColumn CurrentFilterFunction="NoFilter" DataField="QuantityCompleted" | |
DataType="System.Decimal" FilterListOptions="VaryByDataType" ForceExtractValue="None" | |
HeaderText="QuantityCompleted" SortExpression="QuantityCompleted" UniqueName="QuantityCompleted" NumericType="Number"> | |
</telerik:GridNumericColumn> | |
<telerik:GridBoundColumn CurrentFilterFunction="NoFilter" DataField="Comment" FilterListOptions="VaryByDataType" | |
ForceExtractValue="None" HeaderText="Comment" SortExpression="Comment" UniqueName="Comment"> | |
</telerik:GridBoundColumn> | |
</Columns> | |
<DetailTables> | |
<telerik:GridTableView runat="server" CommandItemDisplay="None" CurrentResetPageIndexAction="SetPageIndexToFirst" | |
DataSourceID="JobScheduleSource" DataKeyNames="JobCodeId,ScheduleId" Dir="LTR" Frame="Border" TableLayout="Auto"> | |
<EditFormSettings> | |
<EditColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType"> | |
</EditColumn> | |
</EditFormSettings> | |
<ParentTableRelation> | |
<telerik:GridRelationFields DetailKeyField="JobCodeId" MasterKeyField="JobCodeId" /> | |
</ParentTableRelation> | |
<ExpandCollapseColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" | |
Resizable="False" Visible="False"> | |
<HeaderStyle Width="20px" /> | |
</ExpandCollapseColumn> | |
<RowIndicatorColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" | |
Visible="False"> | |
<HeaderStyle Width="20px" /> | |
</RowIndicatorColumn> | |
<Columns> | |
<telerik:GridDateTimeColumn CurrentFilterFunction="NoFilter" DataField="ScheduleDateTime" | |
DataType="System.DateTime" FilterListOptions="VaryByDataType" ForceExtractValue="None" | |
HeaderText="Schedule Date/Time" UniqueName="ScheduleDateTime" PickerType="DateTimePicker"> | |
</telerik:GridDateTimeColumn> | |
<telerik:GridDropDownColumn DataField="TechnicianId" DataSourceID="TechniciansSource" ListTextField="TechName" | |
ListValueField="TechnicianId" HeaderText="Technician" UniqueName="TechnicianId" CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" ForceExtractValue="None"> | |
</telerik:GridDropDownColumn> | |
<telerik:GridBoundColumn CurrentFilterFunction="NoFilter" DataField="ScheduleNote" | |
FilterListOptions="VaryByDataType" ForceExtractValue="None" HeaderText="Notes" | |
MaxLength="200" UniqueName="ScheduleNote"> | |
</telerik:GridBoundColumn> | |
</Columns> | |
</telerik:GridTableView> | |
</DetailTables> | |
</telerik:GridTableView> | |
</DetailTables> | |
</MasterTableView> | |
</telerik:RadGrid> |
Please note that I have tried and confirmed that it all works if I just set the DataSourceId declartively in the RadGrid definition (i.e there is no problem with the sqldatasources).
Also, the updates on the detail tables work fine (as they have the DataSourceId set declartively)
Thanks,
Fayez