среда, 6 июня 2012 г.

KendoUI First and Last Pager buttons

На работе используем замечательные компоненты KendoUI от Telerik. Постепенно задачи становятся все сложнее и местами уже приходится ковырять их исходники и дописывать нужное. Например казалось бы банальная задачка - в пейджер грида добавить кнопки First и Last для перехода на первую и последнюю страницы соответственно. Стандартный грид подразумевает только набор из 10 кнопок (количество настраивается) и троеточия по краям типа:
[1] 2 3 4 5 6 7 8 9 10 ...
 1 2 3 [4] 5 6 7 8 9 10 ...
... 11 12 13 [14] 15 16 17 18 19 20 ...

А требуется так:
  1 2 3 [4] 5 6 7 8 9 10 ... Last
 First ... 11 12 13 [14] 15 16 17 18 19 20 ... Last

Так вот, настраиваются там только шаблоны ссылок, их количество и как бы все.

Шерстение форумов и мануалов не доло ничего. Тогда я влез в исходники и сгенерил сей чудо-плагин. Если кому нужно, пожалуйста пользуйтесь. Для подключения достаточно вывалить это на страницу, либо подключить как отдельный js файл.


/*
* Ivelum 2012
* Alexander Skogorev
* Adds 'First' and 'Last' buttons to the pager
*/
(function(a,b){function f(a,b,d,e){return a({idx:b,text:d,ns:c.ns,numeric:e})}var c=window.kendo,d=c.ui,e=d.Pager;var g=e.extend({refresh:function(){var a=this,b,c=1,d,g=a.page(),h=a.totalPages(),i=a.linkTemplate,j=a.options.buttonCount;e.fn.refresh.call(a);if(g>j){d=g%j;c=d===0?g-j+1:g-d+1}b=Math.min(c+j-1,h);if(c>1){a.list.prepend(f(i,1,"First",false))}if(b<h){a.list.append(f(i,h,"Last",false))}}});d.plugin(g)})(jQuery)


2 комментария: