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