views:

27

answers:

1

I have a Gridview that displays paged results from a search query. The problem I am having is that the gridview is not displaying all the results returned from the query. For example, I can step through the code and see 6 items returned by the call to GetList(), but only 2 rows get rendered by the gridview after binding.

I am using an ObjectDataSource created in code:

ObjectDataSource ods = new ObjectDataSource();

ods.EnablePaging = true;
ods.TypeName = "Bll.InvestmentProductSvc";
ods.DataObjectTypeName = "Bll.InvestmentProduct";
ods.SelectMethod = "GetList";

ods.SelectCountMethod = "GetListCount";
ods.StartRowIndexParameterName = "PageIndex";
ods.MaximumRowsParameterName = "PageSize";
ods.EnableViewState = false;

ods.SelectParameters.Add (new Parameter("SearchString",TypeCode.String, SearchString));
ods.SelectParameters.Add(new Parameter("PageIndex", TypeCode.Int32));
ods.SelectParameters.Add(new Parameter("PageSize", TypeCode.Int32, gvSearchResults.PageSize.ToString()));

gvSearchResults.DataSource = ods;
gvSearchResults.DataBind();

The Gridview declaration:

<asp:GridView ID="gvSearchResults" runat="server" AutoGenerateColumns="False" AllowPaging="true" PageIndex="0" PageSize="50" OnPageIndexChanging="gvSearchResults_PageIndexChanging"  PagerSettings-Position="TopAndBottom">
</asp:GridView>

Are there any reasons for the Gridview not to render a row and not to report an error? I have examined the data returned for the 6 items and cannot find any distinctive differences between the 2 rows displayed and the 4 rows not displayed.

+1  A: 

Check number of rows returned by:

ods.SelectCountMethod = "GetListCount";
Dewfy
Thanks, you nailed it! GetListCount() had not been updated after some changes a while back leading to inconsistent results.
HectorMac