【问题标题】:Missing Page/Item Counts缺少页面/项目计数
【发布时间】:2012-05-18 15:45:59
【问题描述】:

我在Telerik Forums 上发布了这个,但我觉得我会在这里得到更快的回复,如果交叉发帖不受欢迎,我深表歉意。

My RadGrid 用于在每个网格的右下方显示页面和项目计数。我最近将 Telerik 从 v2011.3.1305 升级到 v2012.1.411。

我的一个网格的典型标记:

<telerik:RadGrid ID="AssetGrid" runat="server" AllowFilteringByColumn="True" AllowPaging="True"
    AllowSorting="True" GridLines="None" GroupingSettings-CaseSensitive="false" Skin="Web20"
    AutoGenerateColumns="False" OnPageIndexChanged="AssetGrid_PageIndexChanged" OnItemCreated="AssetGrid_ItemCreated"
    OnItemDataBound="AssetGrid_ItemDataBound"
    OnPreRender="AssetGrid_PreRender" OnSortCommand="AssetGrid_SortCommand" OnNeedDataSource="AssetGrid_NeedDataSource"
    EnableLinqExpressions="false">
    <ClientSettings EnableRowHoverStyle="true">
        <Selecting AllowRowSelect="true" />
        <ClientEvents OnRowDblClick="RowAssetSelected" />
    </ClientSettings>
    <MasterTableView EditMode="InPlace" AllowFilteringByColumn="true" ShowFooter="false"
        EnableColumnsViewState="true" AutoGenerateColumns="false" CellSpacing="-1" DataKeyNames="AsId"
        Font-Size="90%" AllowCustomSorting="true" AllowCustomPaging="true" Width="100%">
        <PagerStyle Mode="NextPrevAndNumeric" Visible="true" AlwaysVisible="true" />
        <!-- RowIndicatorColumn, ExpandCollapseColumn, Columns, etc -->
    </MasterTableView>
</telerik:RadGrid>

我只在下面包含了 NeedDataSource 的代码,但如果其他任何人有帮助,请告诉我,我会发布它们:

protected void AssetGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
    var collection = getAssets();
    AssetGrid.VirtualItemCount = collection.Count;
    AssetGrid.DataSource = collection.Skip(AssetGrid.PageSize * 
        AssetGrid.CurrentPageIndex).Take(AssetGrid.PageSize);
}

然而,网格显示寻呼机行如下:

我是否错过了启用右下角页面/项目计数的设置,几乎所有Telerik Pager Examples 都显示?

提前致谢!

【问题讨论】:

  • PageSize="10" 添加到标记中,看看它是否有效?
  • @rs - 我将页面大小属性添加到 MasterTableView,不幸的是它似乎没有任何区别。不过还是谢谢你的建议。

标签: asp.net .net-3.5 telerik radgrid


【解决方案1】:

尝试将此代码用于您的 PagerStyle:

    <PagerStyle PagerTextFormat="Page: {4} &amp;nbsp;Count: {5}" 
                Font-Names="Arial"
                ForeColor="#bebebe"
                Font-Size="12px"
                Mode="NextPrevAndNumeric"
                PageSizeLabelText="your lable for page size"
                AlwaysVisible="true"/>

你也可以试试这些属性:

 <telerik:RadGrid ... 
                    OnItemCreated="RadGrid_ItemCreated"                                        
                    PagerStyle-ShowPagerText="true">

您的 ItemCreated 事件的委托方法应如下所示:

protected void RadGrid_ItemCreated(object sender, GridItemEventArgs e)
{
    if (e.Item is GridPagerItem)
    {
        var dropDown = (RadComboBox)e.Item.FindControl("PageSizeComboBox");
        var totalCount = ((GridPagerItem)e.Item).Paging.DataSourceCount;
        var sizes = new Dictionary<string, string>() {
            {"10", "10"},
            {"20", "20"},
            {"50", "50"}
        };
        if (totalCount > 100)
        {
            sizes.Add("100", "100");
        }
        if (totalCount > 200)
        {
            sizes.Add("200", "200");
        }
        sizes.Add("All", totalCount.ToString());

        dropDown.Items.Clear();
        foreach (var size in sizes)
        {
            var cboItem = new RadComboBoxItem() { Text = size.Key, Value = size.Value };
            cboItem.Attributes.Add("ownerTableViewId", e.Item.OwnerTableView.ClientID);
            dropDown.Items.Add(cboItem);
        }
        dropDown.FindItemByValue(e.Item.OwnerTableView.PageSize.ToString()).Selected = true;
    }
}

【讨论】:

  • 哈哈,问题是 4 岁。自从我上次不得不处理 WebForms 以来已经有那么长的时间了,更不用说 Telerik 了。不过还是谢谢。
  • 哈哈,不幸的是我的公司我现在有工作,我们正在通过网络表单和 Telerik 工作。我们的 HIS 项目非常庞大,迁移到 MVC,...
猜你喜欢
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多