KDTable 绑定query

// 创建列和表头

...

// 指定虚模式分页模式

table.getDataRequestManager().setDataRequestMode(KDTDataRequestManager.VIRTUAL_MODE_PAGE);

// 设置总行数为500,可以不指定总行数

table.setRowCount(500);

// 指定绑定的内容 queryName是query对象的名称,fieldNameArray是字符串数组,分别代表每一列对应的字段名称

table.putBindContents(queryName, fieldNameArray);

// 添加请求绑定数据的事件侦听者

table.addRequestRowSetListener(new RequestRowSetListener()

{

    public void doRequestRowSet(RequestRowSetEvent e)

    {

        // 获取操作类型、取数参数和字段名数组

        int oper = e.getOper();

        Object param1 = e.getParam1();

        Object param2 = e.getParam2();

        String[] fields = e.getFields();

        switch (oper)

        {

            // 循序读取RowSet,对应于虚模式分页模式

            case RequestRowSetEvent.EVT_OPER_MOVE :

                int start;

                int end;

                

                // 将参数一转化为当前请求的起始行号

                if (param1 instanceof Integer)

                {

                    start = ((Integer) param1).intValue();

                }               

else

                {

                    start = 0;

                }

                // 将参数二转化为当前请求的结束行号

                if (param2 instanceof Integer)

                {

                    end = ((Integer) param2).intValue();

                    if (end < 0)

                    {

                        end = 999;

                    }

                }

                else

                {

                    end = 999;

                }

                // 返回RowSet

                e.setRowSet(getMoveRowSet(start, end, fields));

                break;

            case RequestRowSetEvent.EVT_OPER_GROUP :

                break;

            case RequestRowSetEvent.EVT_OPER_WHERE :

                break;

            default :

                break;

        }

    }

    

    // 模拟返回一个RowSet

    private IRowSet getMoveRowSet(int start, int end, String[] fields)

    {

        if ((fields == null) || (fields.length == 0))

        {

            fields = colFields;

        }

        else

        {

        }

 

        try

        {

            DynamicRowSet drs = new DynamicRowSet(fields.length);

            for (int i = 0; i < fields.length; i++)

            {

                drs.setColInfo(

                    i + 1,

                    fields[i],

                    fields[i],

                    Types.INTEGER,

                    null);

            }

 

            Random rand = new Random(System.currentTimeMillis());

            for (int i = start; i <= end; i++)

            {

                drs.moveToInsertRow();

                drs.updateInt(1, i);

                for (int j = 2; j <= fields.length; j++)

                {

                    drs.updateInt(j, rand.nextInt());

                }

                drs.insertRow();

            }

drs.beforeFirst();

            //drs.absolute(1);

            return drs;

        }

        catch (SQLException sqle)

        {

            sqle.printStackTrace();

        }

        return null;

    }

}

);


你可能感兴趣的:(J#)