Thursday, August 9, 2012

EXTJS: Continuous Grid Row Number


เวลาใช้ new Ext.grid.RowNumberer() ใน Grid พอข้อมูลเกิน 1 หน้า ขึ้นหน้าใหม่ เลขบรรทัดจะเริ่ม 1 ใหม่เสมอ วิธีแก้ก็เพิ่ม Code นี้เข้าไป แล้ว RowNumberer() ของคุณก็จะนับต่อเนื่องทุกหน้า

Ext.override(Ext.grid.RowNumberer, {
    renderer: function(v, p, record, rowIndex) {
        if (this.rowspan) {
            p.cellAttr = 'rowspan="' + this.rowspan + '"';
        }
        var st = record.store;
        if (st.lastOptions.params && st.lastOptions.params.start != undefined && st.lastOptions.params.limit != undefined) {
            var page = Math.floor(st.lastOptions.params.start / st.lastOptions.params.limit);
            var limit = st.lastOptions.params.limit;
            return limit * page + rowIndex + 1;
        } else {
            return rowIndex + 1;
        }
    }
});