2

私には特有の問題があり、誰かが以前にこの問題に遭遇したかどうかはわかりません。ただし、問題は次のようになります。

TemplateColumnsとBoundColumnsを組み合わせたグリッドがあり、テンプレート列の下のフィルターを使用してグリッドをフィルター処理すると、UI(グリッド)で結果を確認できますが、BoundColumnsで同じことを行うと結果が表示されません。 !!

面白いことに、クエリからの出力を確認でき、DBから正しい数の結果が返されます。また、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);
    }
}

ありがとう、プリーサム。

4

1 に答える 1

2

私はこの問題の修正を見つけました、それは非常に単純で簡単でしたが、私たちはそれに気づきませんでした。

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

Telerikには、組み込みのフィルタリングと、SPとコードを介して実行するユーザー定義のフィルタリングの2種類のフィルタリングがあります。したがって、カスタムフィルタリングを実行する前に、常にフィルタ値をnullに設定する必要があります。

これを回答としてマークします。

ありがとう、プリーサム。

于 2012-08-30T15:33:04.917 に答える