2012-02-02 59 views
4

我可以自定义Grid的寻呼机的外观吗?我想从列表中选择一个页面大小(如Redmine,请参阅'每页'块),而不是从下拉列表中选择。Telerik MVC Grid中的自定义寻呼机

这是非标准Telerik的寻呼机:

Standart Telerik's pager

这是管理平台的寻呼机:

Redmine pager

感谢。

PS例如DevExpress的网格有这个ability

+0

ahhh ...我希望telerik开发人员在添加新功能时要快一点。 DevExpress现在非常棒(特别是在网格相关技术中)。也许我最终在我的新项目中移植到DevExpress。 – 2012-02-02 16:33:20

+1

你见过在线自定义分页的例子,它可能有助于http://demos.telerik.com/aspnet-mvc/grid/custombinding – Tassadaque 2012-02-04 22:50:03

+0

Tassadaque,是的 - 我已经看到它并使用它:)不幸的是,自定义绑定并没有关联自定义寻呼机:( – vladimir77 2012-02-06 17:02:41

回答

1

你可以替换的DOM元素,是负责的页面大小。您需要在网格加载时执行此操作。

查看

@Html.Telerik().Grid(Model) 
    .Name("Grid") 
    .ClientEvents(events => events.OnLoad("Grid_onLoad")) 

的JavaScript

function Grid_onLoad(e) 
{ 
    var html = { place your favorite template engine here } 
    $('#YourGridId').find('.t-page-size').html(html); 
    // bind 'click' event to your new control 
} 

现在的问题是,你需要自己的事件绑定到页面大小的变化,并告诉新页面大小Telerik的格。

您可以向为控制器提供数据的控制器操作提供附加参数。文档中有一个example如何向请求添加其他数据。

<script type="text/javascript"> 
function Grid_onDataBinding(e) { 

    // pass additional values by setting the "data" field of the event argument 
    e.data = { 
     pageSize: // TODO: provide selected page size from your new control 
    }; 
} 
</script> 

在服务器端控制器动作应该自动映射您pageSize到操作参数。

我希望这可以帮助,让我知道如果你需要更多的信息。