3

ページングを有効にしてObjectDataSourceを使用しようとしています。これには、SelectCountMethodを使用する必要があります(グリッドがページ数を認識できるようにするため)。私のObjectDataSourceは次のようになります。

<asp:ObjectDataSource ID="ItemsDataSource" runat="server" SelectMethod="GetContentGridItems" 
TypeName="ContentItemExtensions" SelectCountMethod="GetContentGridItemsCount" EnablePaging="True">

<SelectParameters>
    <asp:QueryStringParameter Name="contentItemID" QueryStringField="cid" DbType="Guid" />
    <asp:QueryStringParameter Name="contentTypeID" QueryStringField="tid" Type="String" />
    <asp:QueryStringParameter Name="contentTypeGroup" QueryStringField="tgid" Type="String" />
    <asp:QueryStringParameter Name="parentItemID" QueryStringField="pcid" DbType="Guid" />
    <asp:QueryStringParameter Name="parentFieldID" QueryStringField="pfld" type="String" />
</SelectParameters>    

そして、対応する静的クラスは次のようになります。

public static class ContentItemExtensions
{
    public static DataTable GetContentGridItems(Guid? contentItemId,string contentTypeID, string contentTypeGroup, Guid? parentItemID, string parentFieldID,int maximumRows, int startRowIndex)  
    public static int GetContentGridItemsCount(Guid? contentItemId,string contentTypeID, string contentTypeGroup, Guid? parentItemID, string parentFieldID)
}

ページングを使用しない場合はすべて正常に機能しますが、ページングを有効にすると、必要なものを明確に示す次の例外が発生します。

ObjectDataSource'ItemsDataSource'は、パラメーター:contentItemID、contentTypeID、contentTypeGroup、parentItemID、parentFieldIDを持つ非ジェネリックメソッド'GetContentGridItemsCount'を見つけることができませんでした。

私のメソッドにはこれらのパラメーターがあり、ジェネリックではないため、手がかりがありません。誰か助けてもらえますか?

4

1 に答える 1

5

パラメータ名では大文字と小文字が区別されるため、メソッドは同じパラメータを取りません。

public static int GetContentGridItemsCount(Guid? contentItemId,
    string contentTypeId, string contentTypeGroup,
    Guid? parentItemID, string parentFieldID)
{
}

と同じではありません:

public static int GetContentGridItemsCount(Guid? contentItemID,
    string contentTypeID, string contentTypeGroup,
    Guid? parentItemID, string parentFieldID)
{
}

D最初の2つの引数の名前は、シグネチャObjectDataSourceが探しているメソッドと一致させるために大文字で終わる必要があります。

于 2012-04-06T09:58:03.073 に答える