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”找不到具有以下参数的非泛型方法“GetContentGridItemsCount”:contentItemID、contentTypeID、contentTypeGroup、parentItemID、parentFieldID。

我的方法有这些参数并且是非通用的,所以我不知道。谁能帮我?

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以匹配ObjectDataSource正在查找的方法签名。

于 2012-04-06T09:58:03.073 回答