【问题标题】:RadGrid Shows "No records to display" when there are records有记录时,RadGrid 显示“没有要显示的记录”
【发布时间】:2012-08-23 10:45:14
【问题描述】:

我有一个特殊的问题,我不确定之前是否有人遇到过这个问题。但是问题是这样的..

我有一个结合了 TemplateColumns 和 BoundColumns 的网格,当我使用模板列下的过滤器过滤网格时,我可以在 UI(网格)中看到结果,但是当我在 BoundColumns 中执行相同操作时,我看不到任何结果。 .!!!

有趣的是,我可以看到查询的输出,并从数据库返回正确数量的结果。并且它也在 NeedDataSource 事件中分配给 GridDataSource。但是我在 ItemDataBoundItem 中找不到 GridDataItem,我只能获取 headeritem、filteritem 和 footeritem。

即使有很多记录分配给数据源,它也会显示“没有要显示的记录”。 在这里我附上屏幕截图,您可以在其中看到记录数显示但不显示记录.. !!

非常感谢任何帮助。

这里是代码示例

<ps:MassApprovalAjaxPanel runat="server" ID="m_UIRadAjaxPanel" LoadingPanelID="m_UIAsynBindLoadPanelInMasterPage">
    <ps:MassApprovalRadGrid
        runat="server"
        ID="m_UIListingGrid"
        SkinID="Grid_MassApproval"
        OnNeedDataSource="ListingGrid_NeedDataSource"
        OnItemDataBound="ListingGrid_ItemDataBound"
        AllowFilteringByColumn="true"
        EnableViewState="true">
        <MasterTableView
            DataKeyNames="CardID, WeekEnding, ClientPONumber"
            ShowFooter="true">
            <Columns>
                <ps:NumericTextBoxTemplateColumn
                    UniqueName="CardID"
                    Width="70"
                    RelativeWidthRatio="90">
                    <ItemTemplate>
                        <asp:Label
                            runat="server"
                            Text='<%# string.Format("{0}/{1}", Eval(Constants.CARD_ID), Eval(Constants.VERSION)) %>' />
                    </ItemTemplate>            
                </ps:NumericTextBoxTemplateColumn>

                <ps:TextBoxBoundColumn
                    UniqueName="ClientPONumber"
                    DataField="ClientPONumber"
                    Width="60"
                    RelativeWidthRatio="80" />
                <telerik:GridClientSelectColumn UniqueName="SelectAll" HeaderText="All" />
            </Columns>
        </MasterTableView>
    </ps:MassApprovalRadGrid>
</ps:MassApprovalAjaxPanel>



protected void ListingGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    m_UIListingGrid.DataSource = RadGridUtilUI.MassApprovalResultsGet();
}

protected void ListingGrid_ItemDataBound(object sender, GridItemEventArgs e)
{
    GridDataItem gridDataItem = e.Item as GridDataItem;
    if (gridDataItem != null)
    {
        AddClientScripts(gridDataItem);
    }
}

谢谢, 普雷瑟姆。

【问题讨论】:

  • No records to display 什么时候出现?你能提供一些你的代码吗
  • 我在 Sora 上面添加了示例代码。

标签: telerik radgrid


【解决方案1】:

我找到了解决此问题的方法,它非常简单直接,但我们没有注意到。

protected void ListingGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    m_UIListingGrid.MasterTableView.FilterExpression = string.Empty;
    m_UIListingGrid.DataSource = RadGridUtilUI.MassApprovalResultsGet();
}

Telerik 有两种过滤类型,一种是内置过滤,另一种是我们通过 SP 和代码执行的用户定义过滤。因此,在进行自定义过滤之前,我们始终必须将过滤器值设置为 null。

将此标记为答案。

谢谢, 普雷瑟姆。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多