2012-08-23 94 views
2

我有一個特殊問題,我不確定是否有人早些時候遇到過這個問題。然而,問題是這樣的..當存在記錄時,RadGrid顯示「沒有要顯示的記錄」

我有一個網格與TemplateColumns和BoundColumns的組合,當我使用模板列下的篩選器篩選網格時,我可以看到UI(網格)中的結果,但是當我做同樣的在BoundColumns中我看不到任何結果.. !!!

有趣的是我可以看到查詢的輸出,並且它返回來自數據庫的正確數量的結果。並且它也被分配給了NeedDataSource事件中的GridDataSource。但是我找不到ItemDataBoundItem中的GridDataItem,我只能獲取headeritem,filteritem和footeritem。

即使有很多記錄分配給DataSource,它也顯示「沒有要顯示的記錄」。 在這裏,我附上的截圖,在那裏你可以看到記錄計數顯示,但沒有記錄..!

NO Records

任何幫助,高度讚賞。

這裏是代碼示例

<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); 
    } 
} 

感謝, Preetham。

+0

何時應該顯示沒有記錄?你能否提供一些你的代碼請 – Sora

+0

我已經在Sora上面添加了示例代碼。 – Preetham

回答

2

我發現這個問題的修復,它非常簡單直接,但我們沒有注意到它。

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

Telerik的有兩種類型的過濾是內置的過濾和用戶定義的,我們做到這一點通過我們的SP的和代碼過濾。所以我們必須在進行自定義過濾之前將過濾器值設置爲空。

將此標記爲答案。

謝謝, Preetham。