One thing (I think bug) I have found is when using ApArrayDataProvider with ApGridView and filtering by letter, the total number of items shown in the grid summary text remains at the total of the full data set.

For example, if I have 10 items and 3 begin with C, when clicking on C I get just the 3 items shown, but the summary text in the grid shows 10 as the total.

The fix I have made is to add the following line at the end of ApArrayDataProvider::alphaFilterData()

One thing (I think bug) I have found is when using ApArrayDataProvider with ApGridView and filtering by letter, the total number of items shown in the grid summary text remains at the total of the full data set.

For example, if I have 10 items and 3 begin with C, when clicking on C I get just the 3 items shown, but the summary text in the grid shows 10 as the total.

The fix I have made is to add the following line at the end of ApArrayDataProvider::alphaFilterData()

$this->setTotalItemCount(count($this->rawData));

Hi Yeti,

thanks for your report. I see... yes, this could happen if you have requested the totalItemCount in your app before alphaFilterData() was called. Because once calculated it will not be recalculated when the grid is created (this is up to CDataProvider).

So i think it's a good idea to refresh the count like you have mentioned! But i'd prefer to use

$this->getTotalItemCount(true);

for this, so the internal calculateTotalItemCount() function is used.

Bug #2:
While playing around to figure out yeti's problem i've found another bug that shows up when disabling pagination. The GridView will create a row for every item of the original dataset just leaving those blank which don't fit to the selected alphapager letter.

For example, I am in letter "A", and there are 70 items. If the pageSize is set to 10, then only 10 items are displayed. I change the pageSize to 25, it will be correct, the 70 items are split into 3 pages, but if I am click on page 2, the pageSize back to default 10, so it becomes 7 pages.

There wouldn't be any differences. If you define the pagination as a part of AlphaPager (the so called subpagination) for a DataProvider then AlphaPager will just pass the pagination on to the DataProvider.
To show some code:

Error 500
CActiveDataProvider does not have a method named "getAlphaPagination".

Did I miss something?

P.S. Now I just previewed my code, maybe it is trying to find the extension in module/extension directory instead of root/protected/extension directory which is where I've installed the extension (so I can use it on other modules)!?--this doesn't seem to be the case

You might as well want to add above code to your extension usage example, can't be certain but I'm pretty sure I followed the installation/usage manual last night when testing the extension, though because I'm using the latest yii framework I jumped into 2nd section of the manual without reading 1st section, that might be why

Next challenge is to get rid of the page numbers under alpha blocks and put pagination to the bottom of the page, guessing that this is not going to be hard
Edit: done the pagination thing, peace of cake thanks to your template variable

Only one issue, Using ApListView in my widget I couldn't get showNumPage activated (kept giving the error of: Property "ApListView.showNumPage" is not defined.), as a last resort I changed the default value of false to true within ApLinkPager class which did the job and I actually prefer having this option enabled for all my lists

Hi All:
I need to display the record number inside the view file of 'itemView'. I mean the ranking of the record.
Just to query like this:
SET @rank=0;
SELECT @rank:=@rank+1 AS rank, fruit, amount FROM sales ORDER BY amount DESC ;
And display that rank number in the view.