Hello
I have this problem:
when i insert data into radgrid, i need to check if one textfield(<telerik:GridBoundColumn>) isnt empty, using a requiredfieldvalidator.
but when i upload a file to the radasyncupload(<telerik:GridAttachmentColumn>) and if i leave textfield empty, the required field validator doesnt work as suposed, a postback event happens and i loose the file.
im using radajaxmanagerproxy. i cant use radajaxmanager.
<telerik:GridBoundColumn ...>
<ColumnValidationSettings EnableRequiredFieldValidation="true">
<RequiredFieldValidator SetFocusOnError="true" ForeColor="Red" Text="*" ToolTip="Empty Field"><span>*</span></RequiredFieldValidator>
<ModelErrorMessage Text=""></ModelErrorMessage>
</ColumnValidationSettings>
</telerik:GridBoundColumn>
any help would be appreciated.
thanks in advance
I have this problem:
when i insert data into radgrid, i need to check if one textfield(<telerik:GridBoundColumn>) isnt empty, using a requiredfieldvalidator.
but when i upload a file to the radasyncupload(<telerik:GridAttachmentColumn>) and if i leave textfield empty, the required field validator doesnt work as suposed, a postback event happens and i loose the file.
im using radajaxmanagerproxy. i cant use radajaxmanager.
<telerik:GridBoundColumn ...>
<ColumnValidationSettings EnableRequiredFieldValidation="true">
<RequiredFieldValidator SetFocusOnError="true" ForeColor="Red" Text="*" ToolTip="Empty Field"><span>*</span></RequiredFieldValidator>
<ModelErrorMessage Text=""></ModelErrorMessage>
</ColumnValidationSettings>
</telerik:GridBoundColumn>
any help would be appreciated.
thanks in advance
14 Answers, 1 is accepted
0
Princy
Top achievements
Rank 2
answered on 24 Apr 2014, 11:37 AM
Hi Mike,
I was not able to reproduce such an issue at me end. Can you try adding the RequiredFieldValidator from the server side as below. If this doesn't help, provide your full code snippet.
C#:
Thanks,
Princy
I was not able to reproduce such an issue at me end. Can you try adding the RequiredFieldValidator from the server side as below. If this doesn't help, provide your full code snippet.
C#:
protected
void
RadGrid1_ItemCreated(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem item = e.Item
as
GridEditableItem;
GridTextBoxColumnEditor editor = (GridTextBoxColumnEditor)item.EditManager.GetColumnEditor(
"ColumnUniqueName"
);
TableCell cell = (TableCell)editor.TextBoxControl.Parent;
RequiredFieldValidator validator =
new
RequiredFieldValidator();
validator.ControlToValidate = editor.TextBoxControl.ID;
validator.ErrorMessage =
"*"
;
cell.Controls.Add(validator);
}
}
Thanks,
Princy
0
MikeS
Top achievements
Rank 1
answered on 24 Apr 2014, 11:58 AM
Hi Princy, Thanks for the help
I wasnt able to create a server side validation, and actually, if i would do that, a postback event would be called on insert before the validation, or am i wrong?
if so, because i use radasyncupload, i really need to not postback, or i loose the file uploaded.
i just need the requiredfieldvalidator to work, arleady search arround and people say that it doesnt work well with radajaxmanagerproxy.
I wasnt able to create a server side validation, and actually, if i would do that, a postback event would be called on insert before the validation, or am i wrong?
if so, because i use radasyncupload, i really need to not postback, or i loose the file uploaded.
i just need the requiredfieldvalidator to work, arleady search arround and people say that it doesnt work well with radajaxmanagerproxy.
0
Princy
Top achievements
Rank 2
answered on 25 Apr 2014, 04:39 AM
Hi Mike,
Please take a look at the sample code snippet i tried, it works fine at my end. Please provide you full code snippet if this doesn't help.
ASPX:
Thanks,
Princy
Please take a look at the sample code snippet i tried, it works fine at my end. Please provide you full code snippet if this doesn't help.
ASPX:
<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"false"
DataSourceID
=
"SqlDataSource1"
AllowPaging
=
"true"
AutoGenerateEditColumn
=
"true"
AllowSorting
=
"true"
>
<
MasterTableView
DataKeyNames
=
"OrderID"
CommandItemDisplay
=
"Top"
>
<
Columns
>
<
telerik:GridBoundColumn
UniqueName
=
"OrderID"
DataField
=
"OrderID"
HeaderText
=
"OrderID"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
SetFocusOnError
=
"true"
ForeColor
=
"Red"
Text
=
"*"
ToolTip
=
"Empty Field"
><
span
>*</
span
> </
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ShipCity"
HeaderText
=
"ShipCity"
UniqueName
=
"ShipCity"
>
</
telerik:GridBoundColumn
>
<
telerik:GridAttachmentColumn
SortExpression
=
"ShipName"
UploadControlType
=
"RadAsyncUpload"
DataSourceID
=
"SqlDataSource1"
MaxFileSize
=
"1048576"
EditFormHeaderTextFormat
=
"Upload File:"
HeaderText
=
"ShipName"
AttachmentDataField
=
"BinaryData"
AttachmentKeyFields
=
"EmployeeID"
FileNameTextField
=
"ShipName"
DataTextField
=
"ShipName"
UniqueName
=
"AttachmentColumn"
>
</
telerik:GridAttachmentColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
asp:SqlDataSource
ID
=
"SqlDataSource1"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Orders]"></
asp:SqlDataSource
>
Thanks,
Princy
0
MikeS
Top achievements
Rank 1
answered on 28 Apr 2014, 08:33 AM
Hello Princy, thanks for the reply.
i've already tried those two aproaches, but with no sucess. This methods work in other aspx pages i have, but not in this.
here's some things about this problem: i'm using several radgrids with a radTabStrip. also, i use RadComboBox to select diferent companies and refresh those radgrids. the radtabstrip calls for ascx pages.
im getting angry rigth now, it was easy to implement in other grids, but it refuses to work now.
i've already tried those two aproaches, but with no sucess. This methods work in other aspx pages i have, but not in this.
here's some things about this problem: i'm using several radgrids with a radTabStrip. also, i use RadComboBox to select diferent companies and refresh those radgrids. the radtabstrip calls for ascx pages.
im getting angry rigth now, it was easy to implement in other grids, but it refuses to work now.
0
Princy
Top achievements
Rank 2
answered on 28 Apr 2014, 09:53 AM
Hi Mike,
Unfortunately I couldn't replicate the issue at my end. Please have a look into the sample code snippet which works fine at my end. Please provide your code if it doesn't help.
ASPX:
UserControl Page:
Thanks,
Princy.
Unfortunately I couldn't replicate the issue at my end. Please have a look into the sample code snippet which works fine at my end. Please provide your code if it doesn't help.
ASPX:
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
</
telerik:RadAjaxManager
>
<
telerik:RadTabStrip
ID
=
"RadTabStrip1"
runat
=
"server"
MultiPageID
=
"RadMultiPage1"
>
<
Tabs
>
<
telerik:RadTab
Text
=
"Tab1"
PageViewID
=
"RadPageView1"
>
</
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
telerik:RadMultiPage
ID
=
"RadMultiPage1"
runat
=
"server"
>
<
telerik:RadPageView
ID
=
"RadPageView1"
runat
=
"server"
>
<
uc1:RequiredFieldValidator
ID
=
"RequiredFieldValidator1"
runat
=
"server"
/>
</
telerik:RadPageView
>
</
telerik:RadMultiPage
>
UserControl Page:
<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"false"
DataSourceID
=
"SqlDataSource1"
AllowPaging
=
"true"
AutoGenerateEditColumn
=
"true"
AllowSorting
=
"true"
>
<
MasterTableView
DataKeyNames
=
"OrderID"
CommandItemDisplay
=
"Top"
>
<
Columns
>
<
telerik:GridBoundColumn
UniqueName
=
"OrderID"
DataField
=
"OrderID"
HeaderText
=
"OrderID"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
SetFocusOnError
=
"true"
ForeColor
=
"Red"
Text
=
"*"
ToolTip
=
"Empty Field"
><
span
>*</
span
> </
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ShipCity"
HeaderText
=
"ShipCity"
UniqueName
=
"ShipCity"
>
</
telerik:GridBoundColumn
>
<
telerik:GridAttachmentColumn
SortExpression
=
"ShipName"
UploadControlType
=
"RadAsyncUpload"
DataSourceID
=
"SqlDataSource1"
MaxFileSize
=
"1048576"
EditFormHeaderTextFormat
=
"Upload File:"
HeaderText
=
"ShipName"
AttachmentDataField
=
"BinaryData"
AttachmentKeyFields
=
"EmployeeID"
FileNameTextField
=
"ShipName"
DataTextField
=
"ShipName"
UniqueName
=
"AttachmentColumn"
>
</
telerik:GridAttachmentColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
Thanks,
Princy.
0
MikeS
Top achievements
Rank 1
answered on 28 Apr 2014, 11:40 AM
Hello,
this is my code:
thanks in advance
this is my code:
This is my default page:
<
telerik:RadAjaxLoadingPanel
ID
=
"radajaxpanel1"
runat
=
"server"
Skin
=
"Metro"
MinDisplayTime
=
"10"
></
telerik:RadAjaxLoadingPanel
>
<
telerik:RadFormDecorator
ID
=
"QsfFromDecorator"
runat
=
"server"
DecoratedControls
=
"All"
EnableRoundedCorners
=
"false"
/>
<
telerik:RadAjaxPanel
ID
=
"AjaxPanel1"
runat
=
"server"
LoadingPanelID
=
"radajaxpanel1"
>
<
div
>
<
div
id
=
"Link"
style
=
"position: fixed; z-index: 4000; top: 0px; display: inline-block; width: 98%;"
class
=
"pull-left"
>
<
telerik:RadComboBox
ID
=
"selcomp"
runat
=
"server"
AllowCustomText
=
"false"
MarkFirstMatch
=
"true"
Width
=
"100%"
EnableViewState
=
"true"
EmptyMessage
=
"Select Company"
AutoPostBack
=
"true"
CausesValidation
=
"false"
Font-Size
=
"14px"
Font-Bold
=
"True"
>
</
telerik:RadComboBox
>
</
div
>
</
div
>
<
div
id
=
"formPanelbar"
class
=
"formPanelbar"
>
<
telerik:RadTabStrip
runat
=
"server"
ID
=
"RadTabStrip1"
MultiPageID
=
"RadMultiPage1"
SelectedIndex
=
"0"
Skin
=
"Web20"
OnClientTabSelected
=
"OnClientTabSelected"
>
<
Tabs
>
<
telerik:RadTab
Text
=
"InitPage"
Selected
=
"True"
></
telerik:RadTab
>
<
telerik:RadTab
Text
=
"Page2"
></
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
telerik:RadMultiPage
ID
=
"RadMultiPage1"
runat
=
"server"
SelectedIndex
=
"0"
>
<
telerik:RadPageView
ID
=
"RadPageView1"
runat
=
"server"
>
.
. PAGE CODE HERE
.
</
telerik:RadPageView
>
<
telerik:RadPageView
ID
=
"RadPageView2"
runat
=
"server"
>
<
uc1:Page2
runat
=
"server"
ID
=
"Page2"
/>
</
telerik:RadPageView
>
</
telerik:RadAjaxPanel
>
This is my Page2(resumed)
<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
<
telerik:RadGrid
ID
=
"RadGrid1"
Width
=
"100%"
CssClass
=
"MyGrid"
runat
=
"server"
AllowAutomaticDeletes
=
"True"
AllowAutomaticInserts
=
"True"
AllowAutomaticUpdates
=
"True"
AutoGenerateColumns
=
"False"
DataSourceID
=
"DataSource1"
AllowFilteringByColumn
=
"True"
AllowSorting
=
"True"
AllowPaging
=
"true"
CellSpacing
=
"0"
GridLines
=
"None"
GroupingSettings-CaseSensitive
=
"false"
>
<
PagerStyle
AlwaysVisible
=
"True"
Mode
=
"Slider"
></
PagerStyle
>
<
MasterTableView
Width
=
"100%"
CommandItemDisplay
=
"Top"
EditMode
=
"InPlace"
DataKeyNames
=
"ID"
DataSourceID
=
"DataSource1"
HorizontalAlign
=
"NotSet"
AutoGenerateColumns
=
"False"
InsertItemDisplay
=
"Bottom"
>
<
CommandItemSettings
ShowAddNewRecordButton
=
"false"
ShowExportToExcelButton
=
"True"
ShowExportToPdfButton
=
"false"
ShowExportToWordButton
=
"false"
/>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn"
>
<
HeaderStyle
Width
=
"70px"
></
HeaderStyle
>
<
ItemStyle
CssClass
=
"MyImageButton"
Width
=
"70px"
></
ItemStyle
>
</
telerik:GridEditCommandColumn
>
<
telerik:GridButtonColumn
ConfirmText
=
"Are you sure'?"
ConfirmDialogType
=
"RadWindow"
ConfirmTitle
=
"Delete"
ButtonType
=
"ImageButton"
CommandName
=
"Delete"
Text
=
"Delete"
UniqueName
=
"DeleteColumn"
Visible
=
"false"
>
<
ItemStyle
HorizontalAlign
=
"Center"
CssClass
=
"MyImageButton"
></
ItemStyle
>
</
telerik:GridButtonColumn
>
<
telerik:GridBoundColumn
DataField
=
"ID"
HeaderText
=
"ID"
Visible
=
"false"
SortExpression
=
"ID"
UniqueName
=
"ID"
DataType
=
"System.Int64"
FilterControlAltText
=
"Filter ID column"
ReadOnly
=
"True"
>
<
ColumnValidationSettings
>
<
ModelErrorMessage
Text
=
""
></
ModelErrorMessage
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"IDCompany"
HeaderText
=
"IDCompany"
Visible
=
"false"
SortExpression
=
"IDCompany"
UniqueName
=
"IDCompany"
DataType
=
"System.Int64"
FilterControlAltText
=
"Filter IDCompany column"
ReadOnly
=
"True"
>
<
ColumnValidationSettings
>
<
ModelErrorMessage
Text
=
""
></
ModelErrorMessage
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Desc"
HeaderText
=
"Desc"
SortExpression
=
"Desc"
UniqueName
=
"Desc"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
FilterControlWidth
=
"80%"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
RequiredFieldValidator-ValidationGroup
=
"ValidationGroup1"
>
<
RequiredFieldValidator
ForeColor
=
"Red"
Text
=
"*"
Display
=
"Dynamic"
ToolTip
=
"Must have Desc"
></
RequiredFieldValidator
>
<
ModelErrorMessage
Text
=
""
></
ModelErrorMessage
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridAttachmentColumn
SortExpression
=
"File"
UploadControlType
=
"RadAsyncUpload"
DataSourceID
=
"sdsFile"
MaxFileSize
=
"1048576"
EditFormHeaderTextFormat
=
"File:"
HeaderText
=
"File"
AttachmentDataField
=
"File"
AttachmentKeyFields
=
"ID"
FileNameTextField
=
"FileName"
DataTextField
=
"FileName"
UniqueName
=
"AttchmentColumn"
FilterControlWidth
=
"80%"
>
</
telerik:GridAttachmentColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
UniqueName
=
"EditCommandColumn1"
FilterControlAltText
=
"Filter EditCommandColumn1 column"
></
EditColumn
>
</
EditFormSettings
>
<
PagerStyle
AlwaysVisible
=
"True"
Mode
=
"Slider"
PageSizes
=
"10;20;50;100"
></
PagerStyle
>
</
MasterTableView
>
</
telerik:RadGrid
>
thanks in advance
0
Princy
Top achievements
Rank 2
answered on 29 Apr 2014, 04:32 AM
Hi MikeS,
Please do the following modification in your code snippet which works fine at my end.
ASPX:
Thanks,
Princy.
Please do the following modification in your code snippet which works fine at my end.
ASPX:
...
<
telerik:GridBoundColumn
DataField
=
"EmployeeID"
HeaderText
=
"EmployeeID"
SortExpression
=
"EmployeeID"
UniqueName
=
"EmployeeID"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
FilterControlWidth
=
"80%"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ForeColor
=
"Red"
Text
=
"*"
Display
=
"Dynamic"
ToolTip
=
"Must have Desc"
>
<
span
>*</
span
>
</
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
...
Thanks,
Princy.
0
MikeS
Top achievements
Rank 1
answered on 29 Apr 2014, 10:58 AM
Hello Princy.
Your solution didnt solve my problem. when i click on insert button the validation dont fire and a post back occurs.
Im trying other approach. there is a way to know if a file was selected to radasyncupload, client side? this way i could verify before insert, and if radasyncupload was empty, i could cancel postback and make an alert. What do you think?
thanks for all the help.
Your solution didnt solve my problem. when i click on insert button the validation dont fire and a post back occurs.
Im trying other approach. there is a way to know if a file was selected to radasyncupload, client side? this way i could verify before insert, and if radasyncupload was empty, i could cancel postback and make an alert. What do you think?
thanks for all the help.
0
MikeS
Top achievements
Rank 1
answered on 29 Apr 2014, 11:04 AM
that would not solve my textbox validation problem, but i also need to validate radasyncupload field.
0
Accepted
Princy
Top achievements
Rank 2
answered on 30 Apr 2014, 06:15 AM
Hi MikeS,
In order to validate the RadAsyncUpload please try the following code snippet which works fine t my end.
ASPX:
C#:
Thanks,
Princy.
In order to validate the RadAsyncUpload please try the following code snippet which works fine t my end.
ASPX:
...
<
telerik:GridAttachmentColumn
SortExpression
=
"ShipName"
UploadControlType
=
"RadAsyncUpload"
DataSourceID
=
"SqlDataSource1"
MaxFileSize
=
"1048576"
EditFormHeaderTextFormat
=
"Upload File:"
HeaderText
=
"ShipName"
AttachmentDataField
=
"BinaryData"
AttachmentKeyFields
=
"EmployeeID"
FileNameTextField
=
"ShipName"
DataTextField
=
"ShipName"
UniqueName
=
"AttachmentColumn"
>
</
telerik:GridAttachmentColumn
>
<
telerik:GridTemplateColumn
>
<
EditItemTemplate
>
<
asp:Label
ID
=
"Label1"
runat
=
"server"
>
</
asp:Label
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
...
C#:
protected
void
RadGrid1_ItemCommand(
object
sender, GridCommandEventArgs e)
{
if
(e.CommandName == RadGrid.UpdateCommandName | e.CommandName == RadGrid.PerformInsertCommandName)
{
GridEditableItem item = e.Item
as
GridEditableItem;
RadAsyncUpload upload = (RadAsyncUpload)item[
"AttachmentColumn"
].Controls[0];
if
(upload.UploadedFiles.Count == 0)
{
e.Canceled =
true
;
Label label = (Label)item.FindControl(
"Label1"
);
label.Style.Add(
"margin-left"
,
"-165%"
);
label.ForeColor = System.Drawing.Color.Red ;
label.Text =
"*"
;
}
}
}
Thanks,
Princy.
0
MikeS
Top achievements
Rank 1
answered on 30 Apr 2014, 08:15 AM
Hello Princy,
your snippet helped me solve the problem with the radasync and i just solved the problem with the textbox validation too(using js).
thanks for everything!
your snippet helped me solve the problem with the radasync and i just solved the problem with the textbox validation too(using js).
thanks for everything!
0
Peter
Top achievements
Rank 1
answered on 07 Jan 2015, 05:07 AM
I have a similar problem where the RadGrid columns have "ColumnValidationSettings", but the page still posts-back to a ItemCommand which then causes an error (due to missing data).
0
Peter
Top achievements
Rank 1
answered on 07 Jan 2015, 05:07 AM
Why would the page be posting-back if ColumnValidationSettings are set?
0
Hello,
Some of the Button controls rendered in RadGrid have ValidationGroup set. Because of this client-side validation is not performed, validation is performed on the server instead.
With this said, would you elaborate in more detail what is your exact scenario? I would appreciate it if you could share your code or send in in a support ticket. This will enable us to better understand your setup and assist you in achieving the behavior you are looking for.
Regards,
Viktor Tachev
Telerik
Some of the Button controls rendered in RadGrid have ValidationGroup set. Because of this client-side validation is not performed, validation is performed on the server instead.
With this said, would you elaborate in more detail what is your exact scenario? I would appreciate it if you could share your code or send in in a support ticket. This will enable us to better understand your setup and assist you in achieving the behavior you are looking for.
Regards,
Viktor Tachev
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.