Hi,
A couple of points:
PageSize - where do you define this? I can't see it in your posted code.
PageIndex - you have defined this as an attribute in the GridView markup:
<asp:GridView id="grvMatGrp" ... PageIndex="10" ... ></asp:GridView>
I would remove this from the mark up, and leave it to the code you have in PageIndexChanging() to take care of it for you.
I would also recommend that have a read at this article:
How To Implement Paging in GridView Control in ASP.NET[
^]
... as this provides a better explanation of the available paging functionality than I can in this solution.
... hope it helps.