Hi, I have a rad grid that contains two columns for StartDate and EndDate with RadDatePickers.
I am using compare validator to validate selected date in both controls with parameters according to my project needs.
At last i want to compare that the date selected in "EndDate" should not be less than the date selected in "StartDate".
How can i supply value of "StartDate" column's control to the CompareValidator's ValueToCompare property of "EndDate" column ?
P.S. My column type is GridTemplateCoulmn and both the Start and End date pickers are in EditItemTemplate.
Help is needed asap.
Thanks in Advance.
                                I am using compare validator to validate selected date in both controls with parameters according to my project needs.
At last i want to compare that the date selected in "EndDate" should not be less than the date selected in "StartDate".
How can i supply value of "StartDate" column's control to the CompareValidator's ValueToCompare property of "EndDate" column ?
P.S. My column type is GridTemplateCoulmn and both the Start and End date pickers are in EditItemTemplate.
Help is needed asap.
Thanks in Advance.
13 Answers, 1 is accepted
0
                                
                                                    Princy
                                                    
                                            
    Top achievements
    
            
                
                Rank 2
            
    
                                                
                                                answered on 12 Aug 2010, 11:57 AM
                                            
                                        Hello,
Check out the following sample code to achieve this.
ASPX:
C#:
Thanks,
Princy.
                                        Check out the following sample code to achieve this.
ASPX:
<telerik:GridTemplateColumn>    <EditItemTemplate>        StartDate:        <telerik:RadDatePicker ID="RadDatePicker1" runat="server">        </telerik:RadDatePicker>                           </EditItemTemplate></telerik:GridTemplateColumn> <telerik:GridTemplateColumn>    <EditItemTemplate>        EndDate        <telerik:RadDatePicker ID="RadDatePicker2" runat="server">        </telerik:RadDatePicker>        <asp:CompareValidator ID="CompareValidator1" runat="server"></asp:CompareValidator>    </EditItemTemplate></telerik:GridTemplateColumn>C#:
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)   {       if (e.Item is GridEditFormItem && e.Item.IsInEditMode)       {           GridEditFormItem editItem = (GridEditFormItem)e.Item;           RadDatePicker picker1 = (RadDatePicker)editItem.FindControl("RadDatePicker1");           DateTime startDate =Convert.ToDateTime(picker1.SelectedDate);           RadDatePicker picker2 = (RadDatePicker)editItem.FindControl("RadDatePicker2");           CompareValidator compValidate = (CompareValidator)editItem.FindControl("CompareValidator1");           compValidate.ControlToValidate = picker2.ID;           compValidate.ControlToCompare = picker1.ID;           compValidate.Operator = ValidationCompareOperator.GreaterThan;           compValidate.ErrorMessage = "EndDate should not be less than StartDate";               }   }Thanks,
Princy.
0
                                
                                                    rock
                                                    
                                            
    Top achievements
    
            
                
                Rank 1
            
    
                                                
                                                answered on 14 Aug 2010, 11:20 AM
                                            
                                        thank i will appy in my form
                                        0
                                
                                                    Miguel
                                                    
                                            
    Top achievements
    
            
                
                Rank 1
            
    
                                                
                                                answered on 09 Dec 2010, 02:13 AM
                                            
                                        Hi Princy,
How can I get the same functionality if I am using GridDateTimeColumns instead of Template columns, but I want the validation to happen in the Client Side. I mean, as soon as the client picks the Second date in the insert form, it needs to validate against the First Date and displays the message error if less.
It can not wait until the client hits the insert command to display the result of this validation. It has to happen right away the second date is selected.
Thanks!
Miguel
                                        How can I get the same functionality if I am using GridDateTimeColumns instead of Template columns, but I want the validation to happen in the Client Side. I mean, as soon as the client picks the Second date in the insert form, it needs to validate against the First Date and displays the message error if less.
It can not wait until the client hits the insert command to display the result of this validation. It has to happen right away the second date is selected.
Thanks!
Miguel
0
                                
                                                    Princy
                                                    
                                            
    Top achievements
    
            
                
                Rank 2
            
    
                                                
                                                answered on 09 Dec 2010, 09:49 AM
                                            
                                        Hello Miguel,
Check out the following code snippet which shows how to achieve the desired functionality.
ASPX:
C#:
Java Script:
Thanks,
Princy.
                                        Check out the following code snippet which shows how to achieve the desired functionality.
ASPX:
<telerik:GridDateTimeColumn UniqueName="GridDateTimeColumn1" DataField="StartDate"></telerik:GridDateTimeColumn><telerik:GridDateTimeColumn UniqueName="GridDateTimeColumn2" DataField="EndDate"></telerik:GridDateTimeColumn><asp:HiddenField ID="HiddenField1" runat="server" />C#:
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)   {       if (e.Item is GridEditFormInsertItem && e.Item.OwnerTableView.IsItemInserted)       {           GridEditFormInsertItem insertItem = (GridEditFormInsertItem)e.Item;           RadDatePicker datepick1 = (RadDatePicker)insertItem["GridDateTimeColumn1"].Controls[0];           RadDatePicker datepick2 = (RadDatePicker)insertItem["GridDateTimeColumn2"].Controls[0];           HiddenField1.Value = datepick1.ClientID;           datepick2.ClientEvents.OnDateSelected = "DateSelected";        }   }Java Script:
<script type="text/javascript">    function DateSelected(sender, args) {        var EndDate = new Date(args.get_newValue());        var datePicker1 = $find(document.getElementById('HiddenField1').value);        var StartDate = new Date(datePicker1.get_dateInput().get_value());        if (StartDate  > EndDate) {            alert("in valid date");            sender.clear();         }    }</script>Thanks,
Princy.
0
                                
                                                    Miguel
                                                    
                                            
    Top achievements
    
            
                
                Rank 1
            
    
                                                
                                                answered on 09 Dec 2010, 02:04 PM
                                            
                                        Hi Princy, thanks for your response...
I get this exception at execution time when I hit the Add New Record Command:
Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Specified argument was out of the range of valid values.
Parameter name: index
The execption is raised in this line ----->
I am not sure if the Controls[0] is not returning what it should.
I appreciate your help.
Regards-
Miguel
                                        I get this exception at execution time when I hit the Add New Record Command:
Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Specified argument was out of the range of valid values.
Parameter name: index
The execption is raised in this line ----->
if(e.Item is GridEditFormItem && e.Item.OwnerTableView.IsItemInserted)       {           GridEditFormItem insertItem = (GridEditFormItem)e.Item;   ------>    RadDatePicker datepick1 = (RadDatePicker)insertItem["GridDateTimeColumn1"].Controls[0];           RadDatePicker datepick2 = (RadDatePicker)insertItem["GridDateTimeColumn2"].Controls[0];           HiddenField1.Value = datepick1.ClientID;           datepick2.ClientEvents.OnDateSelected = "DateSelected";        }I am not sure if the Controls[0] is not returning what it should.
I appreciate your help.
Regards-
Miguel
0
                                
                                                    Princy
                                                    
                                            
    Top achievements
    
            
                
                Rank 2
            
    
                                                
                                                answered on 10 Dec 2010, 06:26 AM
                                            
                                        Hello Miguel,
Since you are accessing the RadDatePicker control in insert form, the grid item is of type GridEditFormInsertItem. Try to access the RadDatePicker like below.
C#:
Thanks,
Princy.
                                        Since you are accessing the RadDatePicker control in insert form, the grid item is of type GridEditFormInsertItem. Try to access the RadDatePicker like below.
C#:
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)   {       if (e.Item is GridEditFormInsertItem && e.Item.OwnerTableView.IsItemInserted)       {           GridEditFormInsertItem insertItem = (GridEditFormInsertItem)e.Item;           RadDatePicker datepick1 = (RadDatePicker)insertItem["GridDateTimeColumn1"].Controls[0];           . . . . . . . . .       }   }Thanks,
Princy.
0
                                
                                                    Miguel
                                                    
                                            
    Top achievements
    
            
                
                Rank 1
            
    
                                                
                                                answered on 10 Dec 2010, 05:41 PM
                                            
                                        Hi Princy, the GridEditFormInsertItem worked. but now I am getting a JavaScript error:
Microsoft JScript runtime error: Object required
At line:
I was doing a little of research and found that this could happen because of the ajax postback.
Do you have any idea why this is happening?
Thanks a lot!
Miguel
                                        Microsoft JScript runtime error: Object required
At line:
function DateSelected(sender, args) {        var EndDate = new Date(args.get_newValue());   ----> var datePicker1 = $find(document.getElementById('HiddenField1').value);I was doing a little of research and found that this could happen because of the ajax postback.
Do you have any idea why this is happening?
Thanks a lot!
Miguel
0
                                
                                                    Miguel
                                                    
                                            
    Top achievements
    
            
                
                Rank 1
            
    
                                                
                                                answered on 10 Dec 2010, 08:39 PM
                                            
                                        Hi Princy, I tried this but I got a new error in the folling line:
Microsoft JScript runtime error: 'null' is null or not an object
function DateSelected(sender, args) {              var EndDate = new Date(args.get_newValue());                      //var datePicker1 = $find(document.getElementById('HiddenField1').value);               var datePicker1 = $find( "<%= HiddenField1.UniqueID %>")           ----->    var StartDate = new Date(datePicker1.get_dateInput().get_value());
0
                                
                                                    Princy
                                                    
                                            
    Top achievements
    
            
                
                Rank 2
            
    
                                                
                                                answered on 13 Dec 2010, 07:16 AM
                                            
                                        Hello Miguel,
Try to include HiddenField1 into UpdatedControls of RadAjaxManager and check whether it resolves the error.
ASPX:
Thanks,
Princy.
                                        Try to include HiddenField1 into UpdatedControls of RadAjaxManager and check whether it resolves the error.
ASPX:
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">    <AjaxSettings>        <telerik:AjaxSetting AjaxControlID="RadGrid1">            <UpdatedControls>                <telerik:AjaxUpdatedControl ControlID="RadGrid1" />            </UpdatedControls>        </telerik:AjaxSetting>        <telerik:AjaxSetting AjaxControlID="RadGrid1">            <UpdatedControls>                <telerik:AjaxUpdatedControl ControlID="HiddenField1" />            </UpdatedControls>        </telerik:AjaxSetting>    </AjaxSettings></telerik:RadAjaxManager>Thanks,
Princy.
0
                                
                                                    Miguel
                                                    
                                            
    Top achievements
    
            
                
                Rank 1
            
    
                                                
                                                answered on 14 Dec 2010, 08:27 PM
                                            
                                        Great!!! It is working now.
Thanks Princy!
                                        Thanks Princy!
0
                                
                                                    Nimisha
                                                    
                                            
    Top achievements
    
            
                
                Rank 1
            
    
                                                
                                                answered on 24 Aug 2015, 09:33 AM
                                            
                                        hello,
I tried your above code but its not work for me. i am using rad grid in batch edit mode. i have two date start date and End date.
i want to validate that start date should be lesser than end date.
Thanks in advance
                                        I tried your above code but its not work for me. i am using rad grid in batch edit mode. i have two date start date and End date.
i want to validate that start date should be lesser than end date.
Thanks in advance
0
                                
                                                    Nimisha
                                                    
                                            
    Top achievements
    
            
                
                Rank 1
            
    
                                                
                                                answered on 24 Aug 2015, 09:33 AM
                                            
                                        hello,
I tried your above code but its not work for me. i am using rad grid in batch edit mode. i have two date start date and End date.
i want to validate that start date should be lesser than end date.
Thanks in advance
                                        I tried your above code but its not work for me. i am using rad grid in batch edit mode. i have two date start date and End date.
i want to validate that start date should be lesser than end date.
Thanks in advance
0
                                Hi Nimisha,
Please note that Batch editing mode is different than other modes. You can find a detailed explanation in the following section:
http://docs.telerik.com/devtools/aspnet-ajax/controls/grid/rows/accessing-cells-and-rows#accessing-controls-in-batch-edit-mode
Regards,
Eyup
Telerik
                                        Please note that Batch editing mode is different than other modes. You can find a detailed explanation in the following section:
http://docs.telerik.com/devtools/aspnet-ajax/controls/grid/rows/accessing-cells-and-rows#accessing-controls-in-batch-edit-mode
Regards,
Eyup
Telerik
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the 
Telerik Feedback Portal
and vote to affect the priority of the items
