Salesforce 开发整理(十一) 自定义放大镜查找效果

有时候在自定义的visualforce页面上,需要实现系统标准的查找样式,当不能使用标准的style的时候,我们只能选择自定义实现,下面分享一个demo,预览效果如下:

实现代码,Visualforce页面

  1 <!-- 自定义放大镜查找效果 -->
  2 <apex:page showHeader="false" controller="SelectSystem"  standardStylesheets="false"  sidebar="false" title="产品清单">
  3 <html>
  4 <head>
  5     <link rel="stylesheet" href="{!URLFOR($Resource.StaticResource,‘css/animate.css‘)}"/>
  6     <link rel="stylesheet" href="{!URLFOR($Resource.StaticResource,‘css/bootstrap.min.css‘)}"/>
  7     <link rel="stylesheet" href="{!URLFOR($Resource.StaticResource,‘css/style.css‘)}"/>
  8 </head>
  9 <apex:form id="form_Id">
 10 <apex:actionFunction action="{!getProductWithId}" name="getProductWithId" reRender="form_Id">
 11    <apex:param name="myParam" value=""/>
 12 </apex:actionFunction>
 13 <body>
 14     <table class="footable table table-stripped toggle-arrow-tiny" data-page-size="10">
 15         <thead>
 16             <tr>
 17               <th data-hide="phone">产品</th>
 18               <th data-hide="phone">描述</th>
 19               <th data-hide="phone">型号</th>
 20               <th data-hide="phone">品牌</th>
 21               <th data-hide="phone">单位</th>
 22             </tr>
 23         </thead>
 24         <tbody>
 25             <apex:repeat value="{!CustomAddProduct}" var="p" >
 26               <tr>
 27                 <td>
 28                     <apex:inputField id="pro" value="{!p.getProduct__c}" styleClass="lookupInput"  onchange="f3(this);"/>
 29                 </td>
 30                 <td>{!p.Description__c}</td>
 31                 <td>{!p.Model__c}</td>
 32                 <td>{!p.Brand__c}</td>
 33                 <td>{!p.Unit__c}</td>
 34               </tr>
 35             </apex:repeat>
 36         </tbody>
 37     </table>
 38 </body>
 39 <script type="text/javascript">
 40      function f3(obj){
 41         var objVa = document.getElementById(obj.id+‘_lkid‘).value;
 42         console.log(‘get到的产品id是:‘ + objVa);
 43         getProductWithId(objVa);
 44     }
 45 </script>
 46 <style type="text/css">
 47     .lookupInput
 48     {
 49         display: inline;
 50         vertical-align: middle;
 51         white-space: nowrap;
 52     }
 53     .lookupInput img
 54     {
 55         background-repeat: no-repeat;
 56         margin-right: .25em;
 57         vertical-align: middle;
 58     }
 59     .lookupInput .disabled{
 60         background-color: #ccc;
 61     }
 62     .lookupInput .emptyDependentLookup{
 63         font-style: italic;
 64     }
 65     .lookupInput input[readonly]{
 66         background-color: #e6e6e6;
 67         border: 2px solid #e6e6e6;
 68         color: #333;
 69         cursor: default;
 70     }
 71     .lookupInput a.readOnly{
 72         float: right;
 73     }
 74     .lookupInput span.readOnly
 75     {
 76         display: block;
 77         white-space: normal;
 78     }
 79     .lookupInput span.totalSummary{
 80         font-weight: bold;
 81     }
 82     .inlineEditRequiredDiv .lookupInput img,.inlineEditDiv .lookupInput img{
 83         vertical-align: middle;
 84     }
 85     .quickCreateModule .lookupInput input {
 86         max-width: 155px
 87     }
 88     .lookupIcon
 89     {
 90         background-image: url({!URLFOR($Resource.lookup,‘lookup20.gif‘)});
 91         background-position: 0 0;
 92         width: 20px;
 93         height: 20px;
 94         background-position: top left
 95     }
 96     .lookupIconOn
 97     {
 98         background-image: url({!URLFOR($Resource.lookup,‘lookup20.gif‘)});
 99         background-position: 0 0;
100         width: 20px;
101         height: 20px;
102         background-position: top right
103     }
104 </style>
105 </apex:form>
106 </html>
107 </apex:page>

后台控制类

 1 /********
 2     *
 3     *  @Author:Ricardo
 4     *  @Time: 2018-01-26
 5     *  @Function: 自定义放大镜
 6     *
 7     */
 8 public class SelectSystem{
 9     public Product__c CustomAddProduct{get;set;}//自定义添加产品
10
11     public void GetProductWithId(){
12         string ProductIdParam = Apexpages.currentPage().getParameters().get(‘myParam‘);
13         System.debug(‘输出get到的产品id:‘ + ProductIdParam);
14         if((ProductIdParam) != null || (ProductIdParam != ‘‘)){
15             String sql_new = ‘select getProduct__c,Unit__c,Description__c,Brand__c,Model__c,id,Name from Product__c where  id=\‘‘ + ProductIdParam + ‘\‘ limit 1‘;
16             System.debug(‘输出查询语句:‘ + sql_new);
17             CustomAddProduct = Database.Query(sql_new);
18             CustomAddProduct.getProduct__c = ProductIdParam;
19             System.debug(‘查询结果:‘ + CustomAddProduct);
20         }
21     }
22 }

附赠使用的css文件

链接: https://pan.baidu.com/s/1FbR8vSD6iER4ShbuYi_7qQ 密码: 29a3

原文地址:https://www.cnblogs.com/luqinghua/p/9388313.html

时间: 2024-10-15 11:24:58

Salesforce 开发整理(十一) 自定义放大镜查找效果的相关文章

Salesforce 开发整理(三)权限共享

Salesforce提供对象的访问权限可以通过 安全性控制 → 共享设置,可以查看每个对象在系统内部默认的访问权限 共用读写:对象的记录任何用户都可以进行读写操作 公用只读:对象的记录任何用户都可以查看,但是只有记录所有人以及具有权限的用户可以编辑 专用:对应的记录只有具有权限的用户才可以进行读写操作 从父级控制:对象记录访问权限跟随父级 以Movie__c对象为例,此时对象权限为公用读写,看到的记录详情页面是这样的 而在编辑页面布局上看到"共享按钮"是被拉出来的状态 当我们将Movi

Salesforce 开发整理(十)项目部署总结

项目部署顺序 全局值集 小组 自定义字段-对象-设置(SF1 紧凑布局要和记录类型在这里要一起部署) 邮件模板-静态资源 角色 工作流-流定义(包含进程生成器) 批准过程 开发部署<Apex类,页面,触发器,组件> 选项卡 视图 自定义按钮(链接) 布局-记录类型-操作<这仨绑定> 应用程序 文件夹,报表,自定义报表类型,仪表板 规则(重复/匹配/共享若干) 需要注意的地方 没有启用的仪表板,报表,批准过程,审批流等等,尽量不要部署到正式里面去 每次上载数据的时候把简档都带上一起&

android开发最常用例子整理----(1)自定义按钮实现

android开发最常用例子整理----(1)自定义按钮实现 一.Activity MainActivity.java源码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

android开发最常用例子整理----(2)自定义ListView(SimpleAdapter实现)

android开发最常用例子整理----(2)自定义ListView(SimpleAdapter实现) 一.Activity MainActivity.java源码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layou

iOS开发UI篇—自定义瀑布流控件(蘑菇街实现)

iOS开发UI篇—自定义瀑布流控件(蘑菇街瀑布流) 一.简单说明 关于瀑布流 1.是使用UIScrollView实现的 2.刷新数据(reloadData)方法里面做哪些事情 3.layoutSubviews方法里面做哪些事情 4.模仿UItableView进行设计 完善: 瀑布流控件第一次显示到屏幕上的时候自动的向数据源索要数据,而不需要手动调用.这需要监听View的显示,View的显示有一个方法,叫做willMoveToSuperview:在该方法中直接刷新一次数据即可. 二.把自定义的瀑布

iOS开发UI篇—自定义瀑布流控件(cell的循环利用)

iOS开发UI篇—自定义瀑布流控件(cell的循环利用) 一.简单说明 当滚动的时候,向数据源要cell. 当UIScrollView滚动的时候会调用layoutSubviews在tableView中也是一样的,因此,可以用这个方法来监听scrollView的滚动,可以在在这个地方向数据源索要对应位置的cell(frame在屏幕上的cell). 示例: 当scrollView在屏幕上滚动的时候,离开屏幕的cell应该放到缓存池中去,询问即将(已经)进入到屏幕的cell,对于还没有进入到屏幕的ce

iOS开发多线程之自定义NSOperation

iOS开发多线程篇—自定义NSOperation 一.实现一个简单的tableView显示效果 实现效果展示: 代码示例(使用以前在主控制器中进行业务处理的方式) 1.新建一个项目,让控制器继承自UITableViewController. 1 // 2 // YYViewController.h 3 // 01-自定义Operation 4 // 5 // Created by apple on 14-6-26. 6 // Copyright (c) 2014年 itcase. All rig

iOS开发多线程篇—自定义NSOperation

iOS开发多线程篇—自定义NSOperation 一.实现一个简单的tableView显示效果 实现效果展示: 代码示例(使用以前在主控制器中进行业务处理的方式) 1.新建一个项目,让控制器继承自UITableViewController. 1 // 2 // YYViewController.h 3 // 01-自定义Operation 4 // 5 // Created by apple on 14-6-26. 6 // Copyright (c) 2014年 itcase. All rig

【微信公众平台开发】创建自定义菜单(四)

1.根据微信公众平台文档,得知创建自定义菜单有如下规则: a.目前自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单.一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以"..."代替.请注意,创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来.建议测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果. 注:所以最多只能创建15个功能菜单,多了就出错了! b. 目前自定义菜单接口可实现两种类型按钮,如下: click: 用户点击