This is a migrated thread and some comments may be shown as answers.

Persisting multiple RadDatePicker item values under a single GridBoundColumn

1 Answer 112 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Selarix
Top achievements
Rank 1
Selarix asked on 20 Mar 2014, 06:06 PM
I'm trying to retrieve some date range filter values when a user revisits a search page after navigating away. I've implemented a date range picker using two RadDatePicker items under one GridBoundColumn as below:
   
<telerik:GridBoundColumn UniqueName="SomeDateRange" DataField="SomeDate" DataType="System.DateTime"
                    ShowFilterIcon="false" SortExpression="SomeDate" HeaderStyle-Width="330px"
                    FilterControlWidth="100px" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                    <FilterTemplate>
                        <div class="dateRange">
                            <asp:Label runat="server" ID="From"><%# LabelFrom%></asp:Label>
                            <telerik:RadDatePicker ID="FromOrderDatePicker" AutoPostBackOnFilter="true" runat="server" Width="140px" ClientEvents-OnDateSelected="FromDateSelected"
                                MinDate="07-04-1996" MaxDate="05-06-2050" FocusedDate="07-03-2014" DbSelectedDate='<%# startDate %>'/>
                        </div>
                        <div class="dateRange">
                            <asp:Label runat="server" ID="To"><%# LabelTo%></asp:Label>
                            <telerik:RadDatePicker ID="ToOrderDatePicker" AutoPostBackOnFilter="true"  runat="server" Width="140px" ClientEvents-OnDateSelected="ToDateSelected"
                                MinDate="07-04-1996" MaxDate="05-06-2050" FocusedDate="07-03-2014" DbSelectedDate='<%# endDate %>' />
                        </div>
                        <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
                            <script type="text/javascript">
                                function FromDateSelected(sender, args) {
                                    var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
                                    var ToPicker = $find('<%# ((GridItem)Container).FindControl("ToOrderDatePicker").ClientID %>');
 
                                    var fromDate = FormatSelectedDate(sender);
                                    var toDate = FormatSelectedDate(ToPicker);
 
                                    tableView.filter("SomeDateRange", fromDate + " " + toDate, "Between");
 
                                }
                                function ToDateSelected(sender, args) {
                                    var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
                                    var FromPicker = $find('<%# ((GridItem)Container).FindControl("FromOrderDatePicker").ClientID %>');
 
                                    var fromDate = FormatSelectedDate(FromPicker);
                                    var toDate = FormatSelectedDate(sender);
 
                                    tableView.filter("SomeDateRange", fromDate + " " + toDate, "Between");
                                }
                                function FormatSelectedDate(picker) {
                                    var date = picker.get_selectedDate();
                                    var dateInput = picker.get_dateInput();
                                    var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat());
 
                                    return formattedDate;
                                }
                            </script>
                        </telerik:RadScriptBlock>
                    </FilterTemplate>
                </telerik:GridBoundColumn>


However, I'm currently unable to persist the RadDatePicker values using the GridSettingsPersister. I believe this is because they have a parent grid item GridBoundColumn. Grid settings persister is implemented similar to the example here: http://www.telerik.com/help/aspnet-ajax/grid-saving-settings-on-per-user-basis.html

Has anyone managed to persist RadDatePicker or any child items like this using a grid settings persister or have any suggestions on how to do this?

1 Answer, 1 is accepted

Sort by
0
Kostadin
Telerik team
answered on 25 Mar 2014, 12:01 PM
Hello,

Since you are using a filter template you have to manually persist the values of the two RadDatePiciker controls. For this purpose you could extend the class which persist the grid settings by accessing the filter item and find the RadDatePiciker controls. You could get the filter item and the controls in it by using the following approach.
GridFilteringItem filter = RadGrid2.MasterTableView.GetItems(GridItemType.FilteringItem)[0] as GridFilteringItem;
DateTime? From = (filter["ColumnUniqName"].FindControl("FromOrderDatePicker") as RadDatePicker).SelectedDate;
DateTime? To = (filter["ColumnUniqName"].FindControl("ToOrderDatePicker") as RadDatePicker).SelectedDate;

Regards,
Kostadin
Telerik
 

Build cross-platform mobile apps using Visual Studio and .NET. Register for the online webinar on 03/27/2014, 11:00AM US ET.. Seats are limited.

 
Tags
Grid
Asked by
Selarix
Top achievements
Rank 1
Answers by
Kostadin
Telerik team
Share this question
or