As far as I know, if your gridview (or whatever the control you use to
show the results) uses an object datasource that calls a method with
parameters from the textbox or the control(s) for the query, the
gridview control itself can paginate. For example:
<asp:GridView ID="GridViewName" runat="server"
DataSourceID="objectDataSource1" AllowPaging="true" PageSize="20">
.....
</asp:GridView>
<asp:ObjectDataSource ID="objectDataSource1" runat="server"
SelectMethod="TheMethod"
TypeName="The.Namespace.For.The.Class">
<SelectParameters>
<asp:ControlParameter Name="Parameter1" ControlID="TextBoxControl1"
ConvertEmptyStringToNull="true"
Type="Int32" PropertyName="Text" />
<asp:ControlParameter Name="Parameter2" ControlID="DropDownListControl1"
Type="Int32" PropertyName="SelectedValue" />
</SelectParameters>
</asp:ObjectDataSource>
Then, the class The.Namespace.For.The.Class must have a method like this:
public (List<Something> or DataTable) TheMethod(int Parameter1, int
Parameter2) {
return ibatis call for list, or build a datatable based on the ibatis call
}
Note the "int Parameter1", parsed through a Textbox.Text (string): the
object datasource then try to parse the text to a integer, in the same
way as the dropdownlist ... the important is that the signature of the
method is the same as the name in the controlparameters.
With this, the object datasource calls the method, fill the gridview
and do the pagination based on the results. When you click the "second
page", the object data source calls again the method and fill the GV
based on the results and the page you select. You can forget then the
count and the manual pagination.
Hope this works and sorry for my poor english!
On Fri, Dec 5, 2008 at 4:14 PM, Jose Selesan <[EMAIL PROTECTED]> wrote:
> Hi people. I'm currently working on a web page used to search products and I
> need to paginate the results. I tryed using QueryForList with parameters
> SkipResults and MaxResults and works great. Now, I need to know the total
> results count in order to create a paginator and my question is: do I need
> to invoke an extra "SELECT COUNT" query to get the total rows count? Or
> there is another way to know how many records there are in total?
>
> Thanks
> Jose
>
--
Juan Pablo Araya