自定义分页与Radgrid无法正常工作

时间:2012-01-05 18:57:20

标签: c# asp.net telerik radgrid

我在这里看到了不同问题的答案,但是无法得到我可以使用的东西,我是RadGrid的新手总是使用GridView,但是现在,他们将它们全部改为RadGrids,其中一个需要有分页自定义,有一个示例here,我试图使用它,但我不知道如果我的数据源是一个数据集如何做到这一点,见

                AdminManager adminMan = new AdminManager();
                DataSet ds = adminMan.GetProducts();

                int startRowIndex = (ShouldApplySortFilterOrGroup()) ?
                   0 : Grid.CurrentPageIndex * Grid.PageSize;


                int maximumRows = (ShouldApplySortFilterOrGroup()) ?
   **HERE NOT SURE HOW TO TRANSLATE THIS SO THAT I CAN USE IT
                     MyBusinessObjectCollection1.SelectCount() : RadGrid1.PageSize;**

                Grid.AllowCustomPaging = !ShouldApplySortFilterOrGroup();

      **HERE NOT SURE HOW TO TRANSLATE THIS SO THAT I CAN USE IT
              RadGrid1.DataSource = MyBusinessObjectCollection1.Select(startRowIndex, maximumRows);**

正如您所看到的,我不确定如何在使用数据集时转换该示例代码。看到我注意到的部分“这里不确定如何翻译....”任何帮助将不胜感激。

此致

2 个答案:

答案 0 :(得分:1)

我对这个问题有点困惑,所以我将把我的DID工作的例子包括在内,也许这会对你的努力有所帮助。首先,我在网格上设置这些:

<!-- Set pageSize to whatever you want -->
<tel:RadGrid .. AllowPaging="true" AllowCustomPaging="true" PageSize="10" />

在代码中,当要绑定的时候,我这样做:

//need to pass the total number of records there are; this is used to build
//the paging list
this.RadGrid1.VirtualItemCount = totalNumberOfRows;

//Bind the filtered resultset that has only 10 or whatever the page size amount of records are
this.RadGrid1.DataSource = x;
this.RadGrid1.DataBind();

实质上,您绑定过滤结果,但将虚拟项目计数设置为记录总数。 RadGrid也应该支持绑定到DataSet,这应该不是问题。

答案 1 :(得分:0)

这对我有用。

http://www.telerik.com/community/forums/aspnet-ajax/grid/pager-arrows-problem-when-databinding-in-page-load.aspx

$('.rgPageFirst').live('click', function () {
    __doPostBack(this.name, '');
    return false;
});

$('.rgPageNext').live('click', function () {
    __doPostBack(this.name, '');
    return false;
});

$('.rgPagePrev').live('click', function () {
    __doPostBack(this.name, '');
    return false;
});

$('.rgPageLast').live('click', function () {
    __doPostBack(this.name, '');
    return false;
});

$('.rgCollapse').live('click', function () {
    __doPostBack(this.name, '');
    return false;
});

$('.rgExpand').live('click', function () {
    __doPostBack(this.name, '');
    return false;
});

$('.rgExrgNumPart').live('click', function () {
    __doPostBack(this.name, '');
    return false;
});