为什么我的SelectCountMethod没有被调用?

时间:2011-05-13 21:04:36

标签: asp.net gridview ado.net objectdatasource

我将GridView绑定到ObjectDataSource

我希望m_ObjectDataSourceGrid_Selected方法可以触发两次,一次用于Select,再用于Count,但它只触发一次。

发生了什么事?

<asp:GridView ID="m_GridViewDocClasses" runat="server" AutoGenerateColumns="False"
            DataSourceID="m_ObjectDataSourceGrid" 
            AllowSorting="true">
            <Columns>
                <asp:HyperLinkField DataNavigateUrlFields="Id" DataNavigateUrlFormatString="DocClass.aspx?DocClassId={0}"
                    Text="Edit" />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />                    
            </Columns>
        </asp:GridView>
    </div>
    <asp:ObjectDataSource ID="m_ObjectDataSourceGrid" runat="server" SelectMethod="GetDocClasses"
        TypeName="SouthernCompany.Generation.SPORT.Business.DocClassBL" OnObjectCreating="m_ObjectDataSourceGrid_ObjectCreating"
        OnSelected="m_ObjectDataSourceGrid_Selected" SelectCountMethod="GetDocClassesCount"
        SortParameterName="sort">
        <SelectParameters>
            <asp:Parameter DefaultValue="" Name="sort" Type="String" />
            <asp:Parameter DefaultValue="0" Name="startRowIndex" Type="Int32" />
            <asp:Parameter DefaultValue="0" Name="maximumRows" Type="Int32" />
            <asp:Parameter DefaultValue="0" Name="docClassId" Type="Int32" />
        </SelectParameters>
    </asp:ObjectDataSource>

2 个答案:

答案 0 :(得分:2)

您的SelectCountMethod是否接收与SelectMethod相同的参数?有两种方法可以使SelectCountMethod可接受:除了Sorting和Paging参数之外,没有任何参数“()”或具有与SelectMethod相同的参数。

答案 1 :(得分:2)

你不能,因为你没有分配allowpaging,把这三个:

AllowPaging="true" 
AllowSorting="true"
PageSize="25"

调用SelectCountMethod需要AllowPaging。

如果不需要,请删除alloworting。