I have created a custom PagerTemplate. I have done this because none of the inbuilt pager modes suited me.
My issue is with the radcombo I have put in the pager to deal with the page size. I have wired it up as follows:
| comboBox.OnClientSelectedIndexChanged = "Telerik.Web.UI.Grid.ChangePageSizeComboHandler"; |
This works well and fires the following code from gridcommon.js:
| Telerik.Web.UI.Grid.ChangePageSizeComboHandler = function (sender, args) |
| { |
| if(args.get_item()) |
| { |
| var ownerTableViewId = args.get_item().get_attributes().getAttribute("ownerTableViewId"); |
| var newPageSize = null; |
| if(sender.get_text()) |
| { |
| newPageSize = sender.get_text(); |
| } |
| if(ownerTableViewId && newPageSize) |
| { |
| var value = parseInt(newPageSize); |
| var tableView = $find(ownerTableViewId); |
| if(tableView) |
| { |
| tableView.set_pageSize(value); |
| } |
| } |
| } |
| }; |
This too works well. My issue is that I want to have the following page sizes:
Text Value
10 10
20 20
50 50
All 9999999
50 50
All 9999999
The javascript code above does not work with "All" as it takes the text value rather than the "value" value. I am able to put the following code in the bottom of my page to resolve this issue:
| Telerik.Web.UI.Grid.ChangePageSizeComboHandler = function(sender, args) { |
| if (args.get_item()) { |
| var ownerTableViewId = args.get_item().get_attributes().getAttribute("ownerTableViewId"); |
| var newPageSize = null; |
| if (sender.get_text()) { |
| newPageSize = sender.get_value(); <------------ CHANGES HERE |
| } |
| if (ownerTableViewId && newPageSize) { |
| var value = parseInt(newPageSize); |
| var tableView = $find(ownerTableViewId); |
| if (tableView) { |
| tableView.set_pageSize(value); |
| } |
| } |
| } |
| }; |
Notice the change here.
I am not sure if this is a bug - but i suspect it is.
thanks,