zoukankan      html  css  js  c++  java
  • 为uniDBGrid设置文字操作栏

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

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

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

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

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

    <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>

    对应的Delphi代码:

    procedure TCustomBillBrowserFrame.OperationFieldGetText(Sender: TField; var Text: string; DisplayText: Boolean);
    begin
      inherited;
      Text:= '<a class="btnopbtn" style="color: #148a14" onclick="ajaxRequest('+UniDBGrid1.JSName+',' +
             QuotedStr('audit')+',[''id='+Sender.DataSet.FieldByName('fid').AsString+''']);">'+'审核</a>|' +
             '<a class="btnopbtn" style="color: #f94936" onclick="ajaxRequest('+UniDBGrid1.JSName+',' +
             QuotedStr('unaudit')+',[''id='+Sender.DataSet.FieldByName('fid').AsString+''']);">'+'退回</a>';
    
    end;

    要说明的是:

    1.ajaxRequest会触发对应控件的OnAjaxEvent事件

    2.具体是哪一个控件呢,由ajaxRequest的第一个参数决定,那这里我们要写成UniDBGrid1.JSName

    3.第二个audit:对应EventName,第三个参数对应Params,参考下面的代码:

    procedure TCustomBillBrowserFrame.UniDBGrid1AjaxEvent(Sender: TComponent;
        EventName: string; Params: TUniStrings);
    begin
      inherited;
    //
    end;

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

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

    上面内容是汗血宝宝教我的,感谢他无私的指导!

  • 相关阅读:
    Old Calculator
    C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母
    C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
    .net中FtpClient类
    用FileZilla Server架设FTP服务器
    asp.net(c#)从Cache对象删除项
    Web开发 前台常用方法 BasePage类
    页面 生命周期事件
    Asp.Net生命周期和Http管道技术
    用三张图片详解Asp.Net 全生命周期
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/15117185.html
Copyright © 2011-2022 走看看