为uniDBGrid设置文字操作栏

为uniDBGrid设置文字操作栏,如下图的效果,用户点击审核,执行审核代码,点退回,执行退回代码:

为uniDBGrid设置文字操作栏(61)_ajax

 

对于Web应用界面,这是最常见的方式,那对于我等Delphi开发者来说,基于uniGUI该怎么实现呢?


 1]首先,为uniDBGrid准备“操作”这一栏的显示内容,具体说,在数据集中准备好显示的数据。

我是为数据集加了一列,叫operation。

为uniDBGrid设置文字操作栏(61)_ajax_02

2]然后在operation的TField.OnGetText中返回显示的数据:

 

对应的Delphi代码: 

procedure TMainForm.FDQuery1operationGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
//Text:='<a class="btnopbtn" style="color: #148a14" onclick="ajaxRequest(O430,''audit'',[''id=C42EBDFDDA9B4526B67EECE72FD7AF5F'']);">审核</a>|<a class="btnopbtn" style="color: #f94936" onclick="ajaxRequest(O430,''unaudit'',[''id=C42EBDFDDA9B4526B67EECE72FD7AF5F'']);">退回</a>';
  inherited;
  Text:= '<button class="btnopbtn"  onclick="ajaxRequest('+UniDBGrid1.JSName+',' +
         QuotedStr('audit')+',[''id='+Sender.DataSet.FieldByName('id').AsString+''']);">'+'  审核  </button> |' +
  • 1.
border-radius:2px;border: none;background:#cfa14c;" onclick="ajaxRequest('+UniDBGrid1.JSName+',' +
         QuotedStr('unaudit')+',[''id='+Sender.DataSet.FieldByName('id').AsString+''']);">'+'  退回  </a>    '
+'<a class="btnopbtn" style="color: #148a22" onclick="ajaxRequest('+UniDBGrid1.JSName+',' +
         QuotedStr('Add1')+',[''id='+Sender.DataSet.FieldByName('id').AsString+''']);">'+'添加</a> |'
        + '<a class="btnopbtn" style="color: #f94936" onclick="ajaxRequest('+UniDBGrid1.JSName+',' +
         QuotedStr('Add2')+',[''id='+Sender.DataSet.FieldByName('id').AsString+''']);">'+'测试</a>'
         ;
end;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

 

为uniDBGrid设置文字操作栏(61)_Text_04

 

明白上面的原理,可以直接看下面的实际代码了:

 

为uniDBGrid设置文字操作栏(61)_Text_05

把记录的id传过来了 

登录后复制 

procedure TMainForm.UniDBGrid1AjaxEvent(Sender: TComponent; EventName: string;
  Params: TUniStrings);
var
  id: string;
begin
  inherited;
  if EventName = 'audit' then
  begin
    id := Params['id'].AsString;
    //执行审核操作的代码,这里省了...
    showmessageN(id);
  end;
  if EventName = 'unaudit' then
  begin
    id := Params['id'].AsString;
    //执行退回操作的代码,这里省了
  end;

  if EventName = 'Add1' then
  begin
    //执行 添加  操作的代码,这里省了
    showmessageN(Params['id'].AsString+'asdf');
  end;

end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝈蝈(GuoGuo)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值