UniGUI UniDBGrid 实现分页,下拉选择每页数据行数,pageSize

1.效果
在这里插入图片描述
2.

unit unit;

interface

uses

type
  TUniDBGrid = class(uniDBGrid.TUniDBGrid)
  protected
    procedure ConfigGridEx; override;
  end;
  
implementation

procedure TUniDBGrid.ConfigGridEx;
begin
  inherited;
end;

3.设置UniDBGrid数据源
在这里插入图片描述

4.设置分页
在这里插入图片描述
5.添加事件
在这里插入图片描述

function afterCreate(sender)
{          
    var toolbar=sender.getDockedItems()[1]; //取出固定在bottom的ToolBar
     toolbar.items.getAt(10).hide(); //取出ToolBar中的Refresh按钮,序号10,隐藏他
     toolbar.add(
     [{
     'id':'lb1',
     'xtype':'tbtext',
     'text': '每页记录数:' 
      }]
     );     
      //添加选择记录数的下拉
     toolbar.add(
     [{
      'id':'recordpage',
      'xtype':'combo',
      'hiddenName': 'pagesize',
      'store': new Ext.data.ArrayStore({
	          fields: ['text', 'value'],
	          data: [['20', 20], ['50', 50], ['100', 100]]
     }),
      'width':60,
      'editable': false,
	   'emptyText':20,
        listeners:{
            select:function(combo,record,index){
                var prvdr=record.get('value');
                ajaxRequest(Farme_Keywords_Managerment.UniDBGrid1, "page_size="+prvdr, []);              
            }
        }      
     }]
     );
     //增加一个显示总记录数的tbtext
     toolbar.add(
     [{
     'id':'recordcount',
     'xtype':'tbtext',
     'text': ',记录总数:' 
      }]
     );
}

6.添加事件
在这里插入图片描述
7.

procedure UniDBGrid1AfterLoad(Sender: TUniDBGrid);
begin
  UniSession.AddJS('Ext.defer(function(){' + (Sender as TUniDBGrid).JSName + '.getSelectionModel().deselectAll(); ' + (Sender as TUniDBGrid).JSName + '.view.refresh()}, 20); '); // 取消全选
  UniSession.AddJS(Format('Ext.getCmp("recordcount").setText("%s");', [',总记录数:' + inttostr(UniQuery1.RecordCount)]));
  // UniSession.AddJS('console.log(' + (Sender as TUniDBGrid).JSName + ')');
end;
procedure UniDBGrid1AjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings);
begin
  with TUniDBGrid(Sender) do
  begin
    if SameText(EventName, 'page_size=20') then
    begin
      RowLimit := 20;
      WebOptions.PageSize := 20;
      DataSource.DataSet.Refresh;
      UniSession.AddJS(JSName + '.store.pageSize=20;');
    end;
    if SameText(EventName, 'page_size=50') then
    begin
      RowLimit := 50;
      WebOptions.PageSize := 50;
      DataSource.DataSet.Refresh;
      UniSession.AddJS(JSName + '.store.pageSize=50;');
    end;
    if SameText(EventName, 'page_size=100') then
    begin
      RowLimit := 100;
      WebOptions.PageSize := 100;
      DataSource.DataSet.Refresh;
      UniSession.AddJS(JSName + '.store.pageSize=100;');
    end;
  end;
end;
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值