我有一个特殊的问题,我不确定是否有人之前遇到过这个问题。然而问题是这样的..
我有一个包含 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);
}
}
谢谢, 普利瑟姆。
最佳答案
我找到了这个问题的解决方案,它非常简单直接,但我们没有注意到。
protected void ListingGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
m_UIListingGrid.MasterTableView.FilterExpression = string.Empty;
m_UIListingGrid.DataSource = RadGridUtilUI.MassApprovalResultsGet();
}
Telerik 有两种类型的过滤,即内置过滤和用户定义的过滤,我们通过 SP 和代码进行过滤。因此,在进行自定义过滤之前,我们始终必须将过滤器值设置为 null。
将此标记为答案。
谢谢, 普利瑟姆。
关于telerik - RadGrid有记录时显示 "No records to display",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12089880/