Hello, I'm having a problem where validation is not firing for columns utilizing ColumnValidationSettings when they are within detail tables within hierarchical radgrids. I am just using required field validators, but when a user edits or inserts in the insert/edit modal and does not fill them in the validation does not fire. The same validation settings work just fine at the mastertableview level in the same grid, just not at deeper tiers within the hierarchy.
The relavant columns have data fields 'Start_Date' and 'End_Date'.
Here is my source (with datakeys, columns etc renamed):
<telerik:RadGrid
ID="grid"
runat="server"
SkinID="skin"
Width="95%"
DataSourceID="datasource">
<ClientSettings AllowExpandCollapse="true"/>
<MasterTableView
Width="100%"
DataSourceID="datasource"
DataKeyNames="adatakey"
HierarchyLoadMode="Client"
CommandItemSettings-ShowAddNewRecordButton="false"
HierarchyDefaultExpanded="true"
CommandItemDisplay="None"
AllowMultiColumnSorting="True">
<EditFormSettings
PopUpSettings-Modal="True"
PopUpSettings-ZIndex="2010"
CaptionFormatString="Edit Records"
PopUpSettings-Width="230px"
EditFormType="AutoGenerated">
</EditFormSettings>
<DetailTables>
<telerik:GridTableView
DataKeyNames="datakey"
DataSourceID="datasource"
HierarchyLoadMode="Client"
Name="ChildGrid"
Width="100%"
AllowAutomaticInserts="True"
AllowAutomaticUpdates="True"
ShowFooter="false"
CommandItemDisplay="None"
AllowCustomSorting="True">
<ParentTableRelation>
<telerik:GridRelationFields
DetailKeyField="datakey"
MasterKeyField="datakey">
</telerik:GridRelationFields>
</ParentTableRelation>
<DetailTables>
<telerik:GridTableView
DataKeyNames="datakey"
DataSourceID="datasource"
Name="GrandChildGrid"
Width="100%"
AllowAutomaticInserts="True"
AllowAutomaticUpdates="True"
ShowFooter="false"
CommandItemDisplay="None"
AllowCustomSorting="True">
<ParentTableRelation>
<telerik:GridRelationFields
DetailKeyField="datakey"
MasterKeyField="datakey">
</telerik:GridRelationFields>
</ParentTableRelation>
<DetailTables>
<telerik:GridTableView
DataKeyNames="datakey"
DataSourceID="datasource"
Name="GreatGrandChildGrid"
EditMode="PopUp"
CommandItemDisplay="Top"
ShowFooter="true"
Width="100%">
<EditFormSettings
PopUpSettings-Modal="True"
PopUpSettings-ZIndex="2010"
PopUpSettings-ShowCaptionInEditForm="false"
CaptionFormatString="Edit Record"
InsertCaption="Add New Record"
EditFormType="AutoGenerated">
</EditFormSettings>
<ParentTableRelation>
<telerik:GridRelationFields
DetailKeyField="datasource"
MasterKeyField="datasource">
</telerik:GridRelationFields>
</ParentTableRelation>
<Columns>
<telerik:GridEditCommandColumn
ButtonType="ImageButton"
UniqueName="EditCommandColumn"
Reorderable="false"
Resizable="false"
HeaderText="Edit"
HeaderStyle-HorizontalAlign="Center"
HeaderTooltip="Edit Record">
<HeaderStyle
Width="70px" />
<ItemStyle
HorizontalAlign="Center"
CssClass="MyImageButton" />
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn
Aggregate="Count"
SortExpression="datafield"
HeaderText="Header"
HeaderButtonType="TextButton"
ColumnEditorID="columnEditor"
MaxLength="20"
DataField="datafield">
<ColumnValidationSettings
EnableRequiredFieldValidation="true">
<RequiredFieldValidator
ErrorMessage="Item is required."
Display="None">
</RequiredFieldValidator>
</ColumnValidationSettings>
</telerik:GridBoundColumn>
<telerik:GridDateTimeColumn
SortExpression="Start_Date"
HeaderText="Start"
HeaderButtonType="TextButton"
Itemstyle-Width="100px"
DataField="Start_Date"
EditDataFormatString="MM/dd/yyyy"
DataFormatString="{0:MM/dd/yyyy}">
<ColumnValidationSettings
EnableRequiredFieldValidation="true">
<RequiredFieldValidator
ErrorMessage="Start is required."
Display="None">
</RequiredFieldValidator>
</ColumnValidationSettings>
</telerik:GridDateTimeColumn>
<telerik:GridDateTimeColumn
SortExpression="End_Date"
HeaderText="End"
HeaderButtonType="TextButton"
Itemstyle-Width="100px"
DataField="End_Date"
EditDataFormatString="MM/dd/yyyy"
DataFormatString="{0:MM/dd/yyyy}">
</telerik:GridDateTimeColumn>
<telerik:GridButtonColumn
ConfirmText="Delete this item?"
ConfirmDialogType="RadWindow"
ConfirmTitle="Delete"
Reorderable="false"
Resizable="false"
ButtonType="ImageButton"
CommandName="Delete"
Text="Delete"
HeaderStyle-HorizontalAlign="Center"
HeaderText="Delete"
HeaderTooltip="Delete Item"
UniqueName="DeleteCommandColumn">
<HeaderStyle
Width="70px" />
<ItemStyle
HorizontalAlign="Center"
CssClass="DeleteConfirmPopup" />
</telerik:GridButtonColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridBoundColumn
SortExpression="datafield"
HeaderText="Product Type"
HeaderButtonType="TextButton"
DataField="datafield">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn
SortExpression="Count"
HeaderText="Count"
HeaderButtonType="TextButton"
DataField="Count">
</telerik:GridBoundColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridBoundColumn
SortExpression="Description"
HeaderText="Item"
HeaderButtonType="TextButton"
ColumnEditorID="itemEditor"
DataField="Item">
</telerik:GridBoundColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridEditCommandColumn
ButtonType="ImageButton"
UniqueName="EditCommandColumn"
Reorderable="false"
Resizable="false"
HeaderText="Edit"
HeaderStyle-HorizontalAlign="Center"
HeaderTooltip="Edit thing">
<HeaderStyle
Width="70px" />
<ItemStyle
HorizontalAlign="Center"
CssClass="MyImageButton" />
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn
SortExpression="thing"
HeaderText="Thing Name"
ReadOnly="true"
ItemStyle-Wrap="false"
MaxLength="50"
HeaderButtonType="TextButton"
DataField="thing">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn
SortExpression="stuff"
HeaderText="Stuff"
HeaderButtonType="TextButton"
ReadOnly="true"
DataField="stuff">
</telerik:GridBoundColumn>
<telerik:GridNumericColumn
SortExpression="percentagething"
HeaderText="Number"
ItemStyle-Width="100px"
HeaderStyle-Width="200px"
HeaderButtonType="TextButton"
ColumnEditorID="Percentage_Thing_Editor"
ConvertEmptyStringToNull="true"
DataFormatString="{0:F2}%"
DecimalDigits="2"
DataField="percentagething">
</telerik:GridNumericColumn>
</Columns>
</MasterTableView>
<ClientSettings>
<ClientEvents OnPopUpShowing="PopupCenteringScript" />
</ClientSettings>
</telerik:RadGrid>
The relavant columns have data fields 'Start_Date' and 'End_Date'.
Here is my source (with datakeys, columns etc renamed):
<telerik:RadGrid
ID="grid"
runat="server"
SkinID="skin"
Width="95%"
DataSourceID="datasource">
<ClientSettings AllowExpandCollapse="true"/>
<MasterTableView
Width="100%"
DataSourceID="datasource"
DataKeyNames="adatakey"
HierarchyLoadMode="Client"
CommandItemSettings-ShowAddNewRecordButton="false"
HierarchyDefaultExpanded="true"
CommandItemDisplay="None"
AllowMultiColumnSorting="True">
<EditFormSettings
PopUpSettings-Modal="True"
PopUpSettings-ZIndex="2010"
CaptionFormatString="Edit Records"
PopUpSettings-Width="230px"
EditFormType="AutoGenerated">
</EditFormSettings>
<DetailTables>
<telerik:GridTableView
DataKeyNames="datakey"
DataSourceID="datasource"
HierarchyLoadMode="Client"
Name="ChildGrid"
Width="100%"
AllowAutomaticInserts="True"
AllowAutomaticUpdates="True"
ShowFooter="false"
CommandItemDisplay="None"
AllowCustomSorting="True">
<ParentTableRelation>
<telerik:GridRelationFields
DetailKeyField="datakey"
MasterKeyField="datakey">
</telerik:GridRelationFields>
</ParentTableRelation>
<DetailTables>
<telerik:GridTableView
DataKeyNames="datakey"
DataSourceID="datasource"
Name="GrandChildGrid"
Width="100%"
AllowAutomaticInserts="True"
AllowAutomaticUpdates="True"
ShowFooter="false"
CommandItemDisplay="None"
AllowCustomSorting="True">
<ParentTableRelation>
<telerik:GridRelationFields
DetailKeyField="datakey"
MasterKeyField="datakey">
</telerik:GridRelationFields>
</ParentTableRelation>
<DetailTables>
<telerik:GridTableView
DataKeyNames="datakey"
DataSourceID="datasource"
Name="GreatGrandChildGrid"
EditMode="PopUp"
CommandItemDisplay="Top"
ShowFooter="true"
Width="100%">
<EditFormSettings
PopUpSettings-Modal="True"
PopUpSettings-ZIndex="2010"
PopUpSettings-ShowCaptionInEditForm="false"
CaptionFormatString="Edit Record"
InsertCaption="Add New Record"
EditFormType="AutoGenerated">
</EditFormSettings>
<ParentTableRelation>
<telerik:GridRelationFields
DetailKeyField="datasource"
MasterKeyField="datasource">
</telerik:GridRelationFields>
</ParentTableRelation>
<Columns>
<telerik:GridEditCommandColumn
ButtonType="ImageButton"
UniqueName="EditCommandColumn"
Reorderable="false"
Resizable="false"
HeaderText="Edit"
HeaderStyle-HorizontalAlign="Center"
HeaderTooltip="Edit Record">
<HeaderStyle
Width="70px" />
<ItemStyle
HorizontalAlign="Center"
CssClass="MyImageButton" />
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn
Aggregate="Count"
SortExpression="datafield"
HeaderText="Header"
HeaderButtonType="TextButton"
ColumnEditorID="columnEditor"
MaxLength="20"
DataField="datafield">
<ColumnValidationSettings
EnableRequiredFieldValidation="true">
<RequiredFieldValidator
ErrorMessage="Item is required."
Display="None">
</RequiredFieldValidator>
</ColumnValidationSettings>
</telerik:GridBoundColumn>
<telerik:GridDateTimeColumn
SortExpression="Start_Date"
HeaderText="Start"
HeaderButtonType="TextButton"
Itemstyle-Width="100px"
DataField="Start_Date"
EditDataFormatString="MM/dd/yyyy"
DataFormatString="{0:MM/dd/yyyy}">
<ColumnValidationSettings
EnableRequiredFieldValidation="true">
<RequiredFieldValidator
ErrorMessage="Start is required."
Display="None">
</RequiredFieldValidator>
</ColumnValidationSettings>
</telerik:GridDateTimeColumn>
<telerik:GridDateTimeColumn
SortExpression="End_Date"
HeaderText="End"
HeaderButtonType="TextButton"
Itemstyle-Width="100px"
DataField="End_Date"
EditDataFormatString="MM/dd/yyyy"
DataFormatString="{0:MM/dd/yyyy}">
</telerik:GridDateTimeColumn>
<telerik:GridButtonColumn
ConfirmText="Delete this item?"
ConfirmDialogType="RadWindow"
ConfirmTitle="Delete"
Reorderable="false"
Resizable="false"
ButtonType="ImageButton"
CommandName="Delete"
Text="Delete"
HeaderStyle-HorizontalAlign="Center"
HeaderText="Delete"
HeaderTooltip="Delete Item"
UniqueName="DeleteCommandColumn">
<HeaderStyle
Width="70px" />
<ItemStyle
HorizontalAlign="Center"
CssClass="DeleteConfirmPopup" />
</telerik:GridButtonColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridBoundColumn
SortExpression="datafield"
HeaderText="Product Type"
HeaderButtonType="TextButton"
DataField="datafield">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn
SortExpression="Count"
HeaderText="Count"
HeaderButtonType="TextButton"
DataField="Count">
</telerik:GridBoundColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridBoundColumn
SortExpression="Description"
HeaderText="Item"
HeaderButtonType="TextButton"
ColumnEditorID="itemEditor"
DataField="Item">
</telerik:GridBoundColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridEditCommandColumn
ButtonType="ImageButton"
UniqueName="EditCommandColumn"
Reorderable="false"
Resizable="false"
HeaderText="Edit"
HeaderStyle-HorizontalAlign="Center"
HeaderTooltip="Edit thing">
<HeaderStyle
Width="70px" />
<ItemStyle
HorizontalAlign="Center"
CssClass="MyImageButton" />
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn
SortExpression="thing"
HeaderText="Thing Name"
ReadOnly="true"
ItemStyle-Wrap="false"
MaxLength="50"
HeaderButtonType="TextButton"
DataField="thing">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn
SortExpression="stuff"
HeaderText="Stuff"
HeaderButtonType="TextButton"
ReadOnly="true"
DataField="stuff">
</telerik:GridBoundColumn>
<telerik:GridNumericColumn
SortExpression="percentagething"
HeaderText="Number"
ItemStyle-Width="100px"
HeaderStyle-Width="200px"
HeaderButtonType="TextButton"
ColumnEditorID="Percentage_Thing_Editor"
ConvertEmptyStringToNull="true"
DataFormatString="{0:F2}%"
DecimalDigits="2"
DataField="percentagething">
</telerik:GridNumericColumn>
</Columns>
</MasterTableView>
<ClientSettings>
<ClientEvents OnPopUpShowing="PopupCenteringScript" />
</ClientSettings>
</telerik:RadGrid>