Me parece amigo que tu problema está en esa parte del código donde preguntas si es un postBack, pero no estoy seguro. Lo mejor es que hagas un paso a paso (debug) y veas que está sucediendo he ir viendo que te está devolviendo el dataset en cada vuelta, revisando que registros tiene y también ver que sql se genera.
De todos modos fijate ese ejemplo, está en c# pero te va server para que veas como este programador a estructurado la páginas, para que veas en donde asigna el sql, a donde agrega los códigos y demás:
http://www.netveloper.com/contenido2.aspx?IDC=334_0
También estos otros:
http://www.forosdelweb.com/f78/paginar-datalist-556949/ http://www.codeproject.com/Kb/aspnet...athanattu.aspx http://www.codeproject.com/KB/aspnet...istPaging.aspx http://aspalliance.com/articleViewer.aspx?aId=157&pId=
Si te sigue el problema avisa.