Reputation: 101
I have a peculiar problem and I am not sure if anyone had come across this problem earlier. however the issue goes like this..
I have a grid with combination of TemplateColumns and BoundColumns and when I filter the grid using the filters under template columns I can see the results in UI (grid) but when I do the same in BoundColumns I do not see any results.. !!!
Funny thing is I can see the output from the query and its returns the correct number of results from DB. and its also assigned to the GridDataSource in the NeedDataSource event. however I cannot find the GridDataItem in the ItemDataBoundItem, I can fetch only headeritem, filteritem and footeritem.
It shows "No records to display" even when there are lot of records assigned to the DataSource. Here I am attaching the screenshot, where you can see that the records count is displayed but not the records.. !!
Any help is highly appreciated.
here is the code sample
<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);
}
}
Thanks, Preetham.
Upvotes: 2
Views: 8612
Reputation: 101
I found fix for this issue, it was quite simple and straight forward but we did not notice it.
protected void ListingGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
m_UIListingGrid.MasterTableView.FilterExpression = string.Empty;
m_UIListingGrid.DataSource = RadGridUtilUI.MassApprovalResultsGet();
}
Telerik has two types of filtering which is inbuilt filtering and user defined filtering that we do it through our SP's and Code. so we always have to set the filter value to null before doing our custom filtering.
Mark this as answer.
Thanks, Preetham.
Upvotes: 2