Boh, se deve essere un contatore che visualizza il numero ordinario del record, non ha senso che parta da zero.

Per quanto riguarda <%=i+1%> e <%=i++%>:


Scrivendo i++, il valore di i viene incrementato, e questo farebbe saltare il ciclo, perché i al primo passaggio avrebbe valore 0, al secondo passaggio avrebbe già valore 2.

Per chiarire del tutto:

codice:
int a;

a = i++; //assegna ad a il valore di i+1, ed incrementa i

a = ++i; // assegna ad a il valore di i, e poi assegna ad i il valore di i+1