基于内容区/分辨率的自动分页 - Telerik Grid

时间:2011-03-25 14:14:26

标签: asp.net-mvc telerik telerik-grid telerik-mvc

我正在努力完成某些事情而且我不确定它是否完全可能。

我有一个使用ASP.NET MVC的Telerik MVC Grid。

网格的默认分页大小为10,但我希望能够根据用户分辨率的大小调整页面大小(行数)。这可能吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

肯定可能。

我创建了一个完成同样事情的解决方案 - 但是你必须修补它以获得你自己的网格的正确高度(排除任何菜单/页眉/页脚等。

这些步骤可以帮助您:

首先 - 您需要向MVC网格添加“onLoad”事件:

    .ClientEvents(events =>events.OnLoad("onLoad"))

下一步 - 创建一个Javascript事件来处理$(document).ready()中的“onLoad”:

    function onLoad(e)
    {
        //Bread and Butter will go here.
    }

最后 - 最后一步是计算网格没有占用的空间(Firebug可能会有所帮助)并修改它,直到你的“公式”在大多数浏览器中运行:

   function onLoad(e)
    {
       //Gets the height of the Window. ($(window).height())
       //Subracts the height of any menus/headers/footers (in this case 275)
       //Then divide by our "magic number" which you will need to tinker with
       //to determine how the grid looks in different browsers. (in this case 28)

       var height = Math.floor(($(window).height()-275)/28);
       var grid = $("#YourGrid").data("tGrid");
       grid.pageSize = height;
    }   

公式:

$(window).height() - [Occupied Space] / [Magic Number]

[Occupied Space] - Total CSS Height of all objects above the Grid.

[Magic Number]   - You will have to play with this one and try it out on 
                   different browsers until you get the expected results.

这应该根据你的窗口高度自动调整你的行数。唯一棘手的部分是使用占用的空间量找出你自己的“公式”,然后选择一个幻数除以。

希望这有帮助!