向多页TABLE中插入数据时,新增行总是在当前页的最后一行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向多页TABLE中插入数据时,新增行总是在当前页的最后一行相关的知识,希望对你有一定的参考价值。

CODE IN CO

OATableBean table = 
                (OATableBean)webBean.findChildRecursive("LineTable");
            int numOfRowsDisplay = table.getNumberOfRowsDisplayed();
            Serializable[] param01 = { new Number(numOfRowsDisplay) };
            Class[] classType = new Class[] { Number.class, };
            am.invokeMethod("addPlanLines", param01, classType);

CODE IN AM

public void addPlanLines(Number numOfDisplay) {
        OADBTransaction tsn = this.getOADBTransaction();

        CuxPosAuditPlanLinesFullVOImpl lineVO = 
            getCuxPosAuditPlanLinesFullVO();
        Number planId = getPlanId();

        lineVO.setMaxFetchSize(0);
        if (!lineVO.isPreparedForExecution()) {
            lineVO.setWhereClause(null);
            lineVO.executeQuery();
        }

        RowSet localRowSet = lineVO.getRowSet();

        int i = 1;
        int j = numOfDisplay.intValue();
        int rangeStart = localRowSet.getRangeStart();
        int rangeSize = localRowSet.getRangeSize();
        int rowCountInRange = localRowSet.getRowCountInRange();
        int i1;
        if (rowCountInRange + i <= j)
            i1 = rowCountInRange;
        else {
            i1 = j - i;
        }
        CuxPosAuditPlanLinesFullVORowImpl row = 
            (CuxPosAuditPlanLinesFullVORowImpl)lineVO.createRow();
        if (rangeSize < i1) {
            rangeSize++;
            localRowSet.setRangeSize(rangeSize);
            localRowSet.setRangeStart(rangeStart);
        }

        row.setPlanId(planId);
        Number pk = getSequenceValue("CUX_POS_AUDIT_PLAN_LINES_S");
        row.setLineId(pk);
        row.setOrgId(new Number(tsn.getOrgId()));
        row.setOrgName(getOrgName(tsn.getOrgId()));
        localRowSet.insertRowAtRangeIndex(i1, row);
        localRowSet.setCurrentRowAtRangeIndex(i1);
    }

 


方法二:

这种方法有点小问题:

仅仅在第一页有效,应该可以再修改修改,懒得改了

calculVO.insertRow(row);   
 int fetched = calculVO.getFetchedRowCount();
 fetched = fetched > 9 ? 9 : fetched;
 if (fetched > 0)
 {
   int current = fetched % 10;
   if (current == 0)
   {
     fetched = 9;
   } else
   {
     fetched = current > 9 ? 9 : current;
   }
 }
 calculVO.insertRowAtRangeIndex(fetched, row);

 

以上是关于向多页TABLE中插入数据时,新增行总是在当前页的最后一行的主要内容,如果未能解决你的问题,请参考以下文章

具有多页的 FPDI

多页中文本框的访问地址

bootstrap table点击某行的删除按钮,删除当前行记录,怎么只刷新表格当前页的内容?

在多页网格视图中获取行数?

js在table中插入行

vue单页应用前进刷新后退不刷新方案探讨