Hey everyone,
I am attempting to validate a number of fields within the "Add New Record" functionality while in "EditMode = Batch". Each GridBoundColumn has its own ColumnValidationSettings and RequiredFieldValidator. The validation message is displayed for two fields, but for four other fields no such message is displayed. Pressing "Save Changes" still requires all of the six fields to contain a value, regardless of whether a validation message is displayed or not. Furthermore, the validation messages are displayed one at a time. What is the best way to validate the field within my scenario? I want all required fields to show their validation message (if the fields are empty) once "Save Changes" is selected. I will include my current attempt that was based off a Batch Edit validation demo. I appreciate all the help I can get. Thanks!
GridBoundColumn w/ Validation (ASPX):
Entire RadGrid (ASPX):
I have also included an image of my error.
Thanks again,
Matt
I am attempting to validate a number of fields within the "Add New Record" functionality while in "EditMode = Batch". Each GridBoundColumn has its own ColumnValidationSettings and RequiredFieldValidator. The validation message is displayed for two fields, but for four other fields no such message is displayed. Pressing "Save Changes" still requires all of the six fields to contain a value, regardless of whether a validation message is displayed or not. Furthermore, the validation messages are displayed one at a time. What is the best way to validate the field within my scenario? I want all required fields to show their validation message (if the fields are empty) once "Save Changes" is selected. I will include my current attempt that was based off a Batch Edit validation demo. I appreciate all the help I can get. Thanks!
GridBoundColumn w/ Validation (ASPX):
<
telerik:GridBoundColumn
DataField
=
"Status_Field"
UniqueName
=
"Status_Field"
HeaderText
=
"Status"
FilterControlWidth
=
"83px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ErrorMessage
=
"This field is required!"
Display
=
"Dynamic"
ValidationGroup
=
"NewRecordValidation"
></
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
Entire RadGrid (ASPX):
<
telerik:RadGrid
ID
=
"RadGridActionItem"
runat
=
"server"
AllowSorting
=
"True"
AllowPaging
=
"true"
AllowFilteringByColumn
=
"True"
OnNeedDataSource
=
"RadGridActionItem_NeedDataSource"
OnPageIndexChanged
=
"RadGridActionItem_PageIndexChanged"
OnItemCreated
=
"RadGridAction_ItemCreated"
OnDeleteCommand
=
"RadGridActionItem_DeleteCommand"
OnInsertCommand
=
"RadGridActionItem_InsertCommand"
OnBatchEditCommand
=
"RadGrid1_BatchEditCommand"
AllowAutomaticUpdates
=
"True"
AllowMultiRowEdit
=
"True"
OnItemDataBound
=
"RadGridActionItem_ItemDataBound"
Width
=
"80%"
HorizontalAlign
=
"Center"
PageSize
=
"15"
EnableViewState
=
"true"
Skin
=
"Windows7"
>
<
GroupingSettings
CaseSensitive
=
"false"
/>
<
MasterTableView
AutoGenerateColumns
=
"false"
ShowFooter
=
"true"
DataKeyNames
=
"Action_Item_Id"
ClientDataKeyNames
=
"Action_Item_Id"
CommandItemDisplay
=
"Top"
Width
=
"100%"
HorizontalAlign
=
"Center"
EditMode
=
"Batch"
>
<
BatchEditingSettings
OpenEditingEvent
=
"None"
EditType
=
"Row"
/>
<
Columns
>
<
telerik:GridNumericColumn
DataField
=
"Action_Item_Id"
UniqueName
=
"Action_Item_Id"
HeaderText
=
"Action Item ID"
ForceExtractValue
=
"Always"
FilterControlWidth
=
"75px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridNumericColumn
>
<
telerik:GridNumericColumn
DataField
=
"Result_Id"
UniqueName
=
"Result_Id"
HeaderText
=
"Result ID"
FilterControlWidth
=
"65px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridNumericColumn
>
<
telerik:GridBoundColumn
DataField
=
"Related_Result_Id"
UniqueName
=
"Related_Result_Id"
HeaderText
=
"Related Result ID"
FilterControlWidth
=
"75px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Status_Field"
UniqueName
=
"Status_Field"
HeaderText
=
"Status"
FilterControlWidth
=
"83px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ErrorMessage
=
"This field is required!"
Display
=
"Dynamic"
ValidationGroup
=
"NewRecordValidation"
></
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Assigned_To"
UniqueName
=
"Assigned_To"
HeaderText
=
"Assigned To"
FilterControlWidth
=
"70px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"Open_Date"
UniqueName
=
"Open_Date"
HeaderText
=
"Open Date"
FilterControlWidth
=
"80px"
AutoPostBackOnFilter
=
"true"
PickerType
=
"DatePicker"
EnableTimeIndependentFiltering
=
"true"
ShowFilterIcon
=
"true"
DataFormatString
=
"{0:M/d/yyyy}"
>
</
telerik:GridDateTimeColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"Due_Date"
UniqueName
=
"Due_Date"
HeaderText
=
"Due Date"
FilterControlWidth
=
"80px"
AutoPostBackOnFilter
=
"true"
PickerType
=
"DatePicker"
EnableTimeIndependentFiltering
=
"true"
ShowFilterIcon
=
"true"
DataFormatString
=
"{0:M/d/yyyy}"
>
</
telerik:GridDateTimeColumn
>
<
telerik:GridBoundColumn
DataField
=
"Title"
UniqueName
=
"Title"
HeaderText
=
"Title"
FilterControlWidth
=
"70px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ErrorMessage
=
"This field is required!"
Display
=
"Dynamic"
ValidationGroup
=
"NewRecordValidation"
></
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Source"
UniqueName
=
"Source"
HeaderText
=
"Source"
FilterControlWidth
=
"70px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ErrorMessage
=
"Required!"
Display
=
"Dynamic"
ValidationGroup
=
"NewRecordValidation"
></
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Employee_Id"
UniqueName
=
"Employee_Id"
HeaderText
=
"Employee ID"
FilterControlWidth
=
"70px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ErrorMessage
=
"Required!"
Display
=
"Dynamic"
ValidationGroup
=
"NewRecordValidation"
></
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"User_System_Id"
UniqueName
=
"User_System_Id"
HeaderText
=
"User System ID"
FilterControlWidth
=
"70px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ErrorMessage
=
"Required!"
Display
=
"Dynamic"
ValidationGroup
=
"NewRecordValidation"
></
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"System"
UniqueName
=
"System"
HeaderText
=
"System"
FilterControlWidth
=
"70px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ErrorMessage
=
"Required!"
Display
=
"Dynamic"
ValidationGroup
=
"NewRecordValidation"
></
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Comparison_Type"
UniqueName
=
"Comparison_Type"
HeaderText
=
"Comparison Type"
FilterControlWidth
=
"80px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Actual_Access_Level"
UniqueName
=
"Actual_Access_Level"
HeaderText
=
"Actual Access Level"
FilterControlWidth
=
"90px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Auth_Access_Level"
UniqueName
=
"Auth_Access_Level"
HeaderText
=
" Auth Access Level"
FilterControlWidth
=
"90px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Investigation_Results"
UniqueName
=
"Investigation_Results"
HeaderText
=
"Investigation Results"
FilterControlWidth
=
"150px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Historical_Authorization_Ticket"
UniqueName
=
"Historical_Authorization_Ticket"
HeaderText
=
"Historical Auth Ticket"
FilterControlWidth
=
"100px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Historical_Provisioning_Ticket"
UniqueName
=
"Historical_Provisioning_Ticket"
HeaderText
=
"Historical Prov Ticket"
FilterControlWidth
=
"100px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Resolution_Steps"
UniqueName
=
"Resolution_Steps"
HeaderText
=
"Resolution Steps"
FilterControlWidth
=
"150px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Resolution_Authorization_Ticket"
UniqueName
=
"Resolution_Authorization_Ticket"
HeaderText
=
"Resolution Auth Ticket"
FilterControlWidth
=
"100px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Resolution_Provisioning_Ticket"
UniqueName
=
"Resolution_Provisioning_Ticket"
HeaderText
=
"Resolution Prov Ticket"
FilterControlWidth
=
"100px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Batch_Name"
UniqueName
=
"Batch_Name"
HeaderText
=
"Batch Name"
FilterControlWidth
=
"70px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"QC_Review"
UniqueName
=
"QC_Review"
HeaderText
=
"QC/Review"
DataType
=
"System.Boolean"
AllowFiltering
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Reviewed_By"
UniqueName
=
"Reviewed_By"
HeaderText
=
"Reviewed_By"
FilterControlWidth
=
"80px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"Review_Date"
UniqueName
=
"Review_Date"
HeaderText
=
"Review Date"
FilterControlWidth
=
"80px"
AutoPostBackOnFilter
=
"true"
PickerType
=
"DatePicker"
EnableTimeIndependentFiltering
=
"true"
ShowFilterIcon
=
"true"
EmptyDataText
=
" "
DataFormatString
=
"{0:M/d/yyyy}"
>
</
telerik:GridDateTimeColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"Resolved_Date"
UniqueName
=
"Resolved_Date"
HeaderText
=
"Resolved Date"
FilterControlWidth
=
"80px"
AutoPostBackOnFilter
=
"true"
PickerType
=
"DatePicker"
EnableTimeIndependentFiltering
=
"true"
ShowFilterIcon
=
"true"
DataFormatString
=
"{0:M/d/yyyy}"
>
</
telerik:GridDateTimeColumn
>
<
telerik:GridButtonColumn
Text
=
"Delete"
CommandName
=
"Delete"
ButtonType
=
"ImageButton"
ConfirmDialogType
=
"RadWindow"
ConfirmText
=
"Are you sure you want to delete this action item?"
/>
</
Columns
>
<
SortExpressions
>
<
telerik:GridSortExpression
FieldName
=
"Action_Item_Id"
SortOrder
=
"Descending"
/>
</
SortExpressions
>
</
MasterTableView
>
<
ClientSettings
>
<
ClientEvents
OnRowContextMenu
=
"RowContextMenu"
/>
<
Scrolling
AllowScroll
=
"True"
UseStaticHeaders
=
"True"
SaveScrollPosition
=
"true"
FrozenColumnsCount
=
"2"
>
</
Scrolling
>
<
Selecting
AllowRowSelect
=
"True"
></
Selecting
>
<
ClientEvents
OnRowDblClick
=
"RowDblClick"
/>
</
ClientSettings
>
</
telerik:RadGrid
>
I have also included an image of my error.
Thanks again,
Matt