Salesforce vf 自定义页面 增删改查+分页+全选+筛选 apex代码

创建对象:

 

 

首页(he.vfp):

<apex:page StandardController="meili__c" extensions="cc" sidebar="false" showHeader="false" >
    <apex:stylesheet value="{!$Resource.style}"/>
    <apex:includeScript value="{!$Resource.tijiao}"/>
    <div class="head">
        哈哈哈哈哈标题
    </div>
    <div class="bodd">
        <div class="left">
            左侧:<button id="dianji" onclick="OpenDialog()">点击</button>
        </div>
        <div class="right">
            
            <apex:form id="shaixuan">
                <apex:actionFunction name="aSelectItem" action="{!doSelectItem}" rerender="shaixuan">
                    <apex:param name="contextItem" value="" assignTo="{!contextItem}"/>
                </apex:actionFunction>
                
                <apex:actionFunction name="aDeselectItem" action="{!doDeselectItem}" rerender="shaixuan">
                    <apex:param name="contextItem" value="" assignTo="{!contextItem}"/>
                </apex:actionFunction>
                
                <apex:actionFunction name="quanxuanzhong" action="{!xuan}" rerender="shaixuan">
                    <apex:param name="xuanstring" value="" assignTo="{!xuanstring}"/>
                </apex:actionFunction>
                
                <apex:actionFunction name="quanbuxuan" action="{!buxianxuan}" rerender="shaixuan">
                    <apex:param name="buxuanstring" value="" assignTo="{!buxuanstring}"/>
                </apex:actionFunction>
                
                <div>
                    筛选条件:
                    <apex:selectList value="{! optionAcc }" size="1">
                        <apex:selectOptions value="{!optionAccList }"/>
                        <apex:actionSupport event="onchange" action="{!searchAccOppList}" reRender="shaixuan"/>
                    </apex:selectList>
                </div>
                <div>
                    数据显示:
                </div>
                
                <apex:pageBlock >
                    <apex:pageBlockTable value="{!meimei}" var="mei">
                        <apex:column width="2%" >
                            <apex:facet name="header">
                                <apex:inputCheckbox onclick="selectAllCheckboxes1(this,'invId')" id="all" />
                            </apex:facet>
                            <apex:inputCheckbox value="{!mei.IsSelected}" id="invId" onchange="doCheckboxChange(this,'{!mei.meili.meiliID__c}')"/>
                            <!-- <apex:actionSupport event="onclick" action="{!inp}" reRender="shaixuan"/> -->
                        </apex:column>
                        <apex:column value="{!mei.meili.meiliID__c}"/>
                        <apex:column value="{!mei.meili.meiliName__c}"/>
                        <apex:column value="{!mei.meili.meiliFen__c}"/>
                        <apex:column value="{!mei.meili.meiliTime__c}"/>
                        <apex:column value="{!mei.meili.meiliNote__c}"/>
                        <apex:column value="{!mei.meili.fenlei__c}"/>
                        <apex:column width="4%" >
                            <apex:facet name="header">
                                操作
                            </apex:facet>
                            <apex:commandLink value="修改" action="{!xiu}">
                                <apex:param name="xiuid" value="{!mei.meili.meiliID__c}"></apex:param>
                            </apex:commandLink>
                        </apex:column>
                        
                    </apex:pageBlockTable>
                </apex:pageBlock>
                
                
                <table style="width: 100%"><tr>
                    <td>
                        <apex:outputText value=" {!PageNumber}/{! CEILING(ResultSize / size) }"/>
                    </td>
                    <td align="center">
                        <!-- Previous page -->
                        <!-- active -->
                        <apex:commandLink action="{!first}" value="« 首页"/>
                        
                        <apex:commandLink action="{!Previous}" value="« Previous"
                                          rendered="{! HasPrevious }"/>
                        <!-- inactive (no earlier pages) -->
                        <apex:outputText style="color: #ccc;" value="« Previous"
                                         rendered="{! NOT(HasPrevious) }"/>
                        &nbsp;&nbsp;
                        <!-- Next page -->
                        <!-- active -->
                        <apex:commandLink action="{!Next}" value="Next »"
                                          rendered="{!HasNext}"/>
                        <!-- inactive (no more pages) -->
                        <apex:outputText style="color: #ccc;" value="Next »"
                                         rendered="{!NOT(HasNext)}"/>
                        
                        <apex:commandLink action="{!last}" value="尾页 »" />
                        
                    </td>
                    <td align="right">
                        <apex:selectList value="{!size}" size="1">
                            <apex:selectOption itemValue="3" itemLabel="3"/>
                            <apex:selectOption itemValue="5" itemLabel="5"/>
                            <apex:selectOption itemValue="10" itemLabel="10"/>
                            <apex:selectOption itemValue="15" itemLabel="15"/>
                            <apex:selectOption itemValue="20" itemLabel="20"/>
                            <apex:actionSupport event="onchange" action="{!refreshPage}" reRender="shaixuan"/>
                        </apex:selectList>
                    </td>
                    </tr></table>                
                <apex:outputPanel >
                    <apex:commandButton value="新增数据" action="{!tiao}"/>
                </apex:outputPanel>
                
                <!--<apex:outputPanel >
<apex:commandButton value="修改数据" action="{!xiu}"/>
<apex:param name="xiuid" value="{!meili__c.meiliID__c}"></apex:param>
</apex:outputPanel>  -->
                
                <apex:outputPanel >
                    <apex:commandButton value="删除" action="{!piliangdel}"/>
                </apex:outputPanel>
                
                
                
            </apex:form>
        </div>
    </div>
    <div class="clear"></div>
</apex:page>

 

首页后台(cc.apxc):

public with sharing class cc  {
    List<meiliji> Meimei{get;set;}
    public String optionAcc {get; set;}
    public List<SelectOption> optionAccList {get; set;}
    public List<String> result {get;set;}
    public String xuanzhong {get;set;}
    
    public static final Integer DEFAULT_PAGE_SIZE = 5;
    public Integer size {get;set;} 
    public String filterId {get;set;}
    public List<SelectOption> listViewOptions {get;set;}
    public List<meili__c> tpList;
    public Set<Id> tpIds;
    public String query;
    
    private Set<String> selectedContactIds;
    private ApexPages.StandardSetController setCon;
    public String contextItem{get;set;}
    
    public String xuanstring{get;set;}
    private List<String> xuanlist;
    private Set<String> xuanset;
    
    public String buxuanstring{get;set;}
    private List<String> buxuanlist;
    
    public cc(ApexPages.StandardController stdController){
        getTaskTypes();
        this.selectedContactIds= new Set<String>();
        this.xuanset= new Set<String>();
        query = 'select meili__c.ckk__c,meili__c.meiliID__c,meili__c.meiliName__c,meili__c.meiliFen__c,meili__c.meiliTime__c,meili__c.meiliNote__c,meili__c.fenlei__c FROM meili__c order by meili__c.meiliID__c';
        this.setCon= new ApexPages.StandardSetController(Database.getQueryLocator(query));
        size = DEFAULT_PAGE_SIZE;
        this.setCon.setPageSize(size);
    }

    // 返回自定义对象Tender_Project__c的List数据集合
    public List<meiliji> getMeimei() {
        List<meiliji> rows = new List<meiliji>();
        for(sObject r : this.setCon.getRecords()){
            meili__c mm = (meili__c)r;
            meiliji row = new meiliji(mm,false);
            //System.debug('单独选'+this.selectedContactIds);
            //System.debug('全选list'+this.xuanlist);
            //System.debug('全选set'+this.xuanset);
            
            if(this.selectedContactIds.contains(mm.meiliID__c)){
                row.IsSelected=true;
            }
            else{
                row.IsSelected=false;
            }
            rows.add(row);
        }
 
        return rows;
    }
    
    // 返回页面是否有下一页布尔值
    public Boolean hasNext {
        get {
            return setCon.getHasNext();
        }
        set;
    }
    
    // 返回页面是否有上一页布尔值
    public Boolean hasPrevious {
        get {
            return setCon.getHasPrevious();
        }
        set;
    }
    
    // 返回当前记录的页面数
    public Integer pageNumber {
        get {
            return setCon.getPageNumber();
        }
        set;
    }
    
    // 返回记录的总条数
    public Integer resultSize {
        get {
            return setCon.getResultSize();
        }
        set;
    }
    
    // 返回上一页记录
    public void previous() {
        setCon.previous();
    }
    
    // 返回下一页记录
    public void next() {
        setCon.next();
    }
    
    //首页
    public void first() {
        setCon.first();
    }
    
    //尾页
    public void last() {
        setCon.last();
    }
    
    
    // 改变每一页显示的记录条数
    public void refreshPage() {
         setCon.setPageSize(size);
    }
    
    public void doSelectItem(){
        this.selectedContactIds.add(this.contextItem);
    }
    
     public void doDeselectItem(){
        this.selectedContactIds.remove(this.contextItem);
    }
    
    public void xuan(){
        this.xuanlist =  this.xuanstring.split(',');
        for(String qq : this.xuanlist){
            this.xuanset.add(qq);
        }
        this.selectedContactIds.addAll(this.xuanset);
    }
    
    public void buxianxuan(){
        System.debug('不不不不不不');
        System.debug(this.buxuanstring);
        this.buxuanlist =  this.buxuanstring.split(',');
        System.debug('不选'+this.buxuanlist);
        for(String qq : this.buxuanlist){
            this.selectedContactIds.remove(qq);
        }
    }
    
    
    
    //跳转到插入页
    public PageReference tiao(){
        PageReference pageRef = new PageReference('/apex/z12');
        return pageRef;
    }
    
    //下拉筛选
    public void getTaskTypes(){
        result = new List<String>();
        Schema.DescribeFieldResult fieldResult = meili__c.fenlei__c.getDescribe();
        List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
        for( Schema.PicklistEntry f : ple)
        {
            result.add(f.getLabel());
        }
        optionAccList = new List<SelectOption>();
        if(result != null && !result.isEmpty()){
            optionAccList.add(new SelectOption('none', '全部'));
            for(String acc : result){
                optionAccList.add(new SelectOption(acc, acc));  
            }
        }
    }
    
    //筛选onchange
    public void searchAccOppList(){
        if(optionAcc!='none'){
             string queryStr = '%' + optionAcc + '%';
        query = 'select meili__c.ckk__c,meili__c.meiliID__c,meili__c.meiliName__c,meili__c.meiliFen__c,meili__c.meiliTime__c,meili__c.meiliNote__c,meili__c.fenlei__c '
            +'from meili__c '
            +'where meili__c.fenlei__c LIKE :queryStr';
        }
        else{
        query = 'select meili__c.ckk__c,meili__c.meiliID__c,meili__c.meiliName__c,meili__c.meiliFen__c,meili__c.meiliTime__c,meili__c.meiliNote__c,meili__c.fenlei__c '
            +'from meili__c ';
        }
        setCon = new ApexPages.StandardSetController(Database.getQueryLocator(query));
        setCon.setPageSize(size);
    }
    
    //带参数跳转到修改页面
    public PageReference xiu(){
        String xid = ApexPages.currentPage().getParameters().get('xiuid');
        meili__c selectmeili = ([select meili__c.ckk__c,meili__c.meiliID__c,meili__c.meiliName__c,meili__c.meiliFen__c,meili__c.meiliTime__c,meili__c.meiliNote__c from meili__c where meili__c.meiliID__c=:xid]);
        PageReference pageRef = new PageReference('/apex/bianji?xid='+ xid);
        return pageRef;
    }
    
    //批量删除数据
    public void piliangdel(){
        List<String> bb = new List<String>();
        for(String aa : selectedContactIds){
            bb.add(aa);
        }
        List<meili__c> ass = new List<meili__c>();
        ass = ([select meili__c.ckk__c,meili__c.meiliID__c,meili__c.meiliName__c,meili__c.meiliFen__c,meili__c.meiliTime__c,meili__c.meiliNote__c,meili__c.fenlei__c FROM meili__c order by meili__c.meiliID__c]);
        
        for(meili__c zx :ass){
            for(String zf :bb){
                if(zx.meiliID__c == zf){
                    delete zx;
                }
            }
        }
        //for (meili__c mm : Meimei){
        //    system.debug(mm.ckk__c);
        //    if(mm.ckk__c){ 
        //        system.debug('hahah');
        //        delete mm;
        //    }
        //}
        setCon = new ApexPages.StandardSetController(Database.getQueryLocator(query));
        setCon.setPageSize(size);
        //Meimei = (List<meili__c>)setCon.getRecords();
    }
  
    public with sharing class meiliji{
        public meili__c meili{get;set;}
        public Boolean IsSelected{get;set;}
        public meiliji(meili__c mm, Boolean ck){
            this.meili=mm;
            this.IsSelected=ck;
        }
    }
  
}

 

新增页面(z12.vfp):

<apex:page StandardController="meili__c" extensions="z11">
    
    <apex:includeScript value="{!URLFOR($Resource.data,'layDate-v5.0.9/laydate/laydate.js')}"/>
    <apex:includeScript value="{!$Resource.tijiao}"/>
    <apex:stylesheet value="{!$Resource.style}"/>
    
    <apex:pageBlock title="新页面">
        <apex:pageBlockSection title="新增数据">
            <apex:form >
                
                <apex:pageMessages />
                
                <!--<apex:pageBlockSection >
                    美丽ID:<apex:inputField value="{!meili__c.meiliID__c}"/>   
                </apex:pageBlockSection>-->
                
                <apex:pageBlockSection >
                   <apex:inputField value="{!meili__c.meiliName__c}"/> 
                </apex:pageBlockSection>
                
                <apex:pageBlockSection >
                    <apex:inputField value="{!meili__c.meiliFen__c}"/> 
                </apex:pageBlockSection>
                
                <apex:pageBlockSection >
                    
                    <th class="labelCol vfLabelColTextWrap  first  last " scope="row">
                        <label for="j_id0:j_id4:j_id5:j_id6:j_id43:j_id44">分类</label>
                    </th>
                    <apex:selectList value="{! optionAcc }" size="1">
                        <apex:selectOptions value="{!optionAccList }"/>
                </apex:selectList>
                    
                </apex:pageBlockSection>
                
                
                
                <apex:pageBlockSection >
                   <apex:inputField value="{!meili__c.meiliTime__c}"/>
                </apex:pageBlockSection>
                <apex:pageBlockSection >
                    <apex:inputField value="{!meili__c.meiliNote__c}" />
                </apex:pageBlockSection>
                
                <apex:outputPanel >
                    <apex:commandButton value="确认新增" action="{!inser}"/>
                </apex:outputPanel>
                
            </apex:form>
        </apex:pageBlockSection>
    </apex:pageBlock>
</apex:page>

 

新增后台(z11.apxc):

public with sharing class z11 {
    private final  meili__c bn;
    public String optionAcc {get; set;}
    public List<SelectOption> optionAccList {get; set;}
    public List<String> result {get;set;}

    public z11(ApexPages.StandardController stdController){
        getTaskTypes();
        this.bn = (meili__c)stdController.getRecord();
        //this.bn.meiliTime__c.addError('时间错误');
        //this.bn.meiliName__c.addError('名称错误');
        
        //ApexPages.addMessage(new ApexPages.message(ApexPages.Severity.ERROR,'gggg'));
    }
    //public String meiliid{get;set;}
    //public String meiliname{get;set;}
    //public Integer meilifen{get;set;}
    //public Date meilitime{get;set;}
    //public String meilinote{get;set;}
    //
    
    public void getTaskTypes(){
        result = new List<String>();
        Schema.DescribeFieldResult fieldResult = meili__c.fenlei__c.getDescribe();
        List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
        for( Schema.PicklistEntry f : ple)
        {
            result.add(f.getLabel());
        }
        optionAccList = new List<SelectOption>();
        if(result != null && !result.isEmpty()){
            optionAccList.add(new SelectOption('', '--None--'));
            for(String acc : result){
                optionAccList.add(new SelectOption(acc, acc));  
            }
        }
    }
    
    public PageReference inser(){
        
        meili__c ins = new meili__c();
        ins.meiliName__c = this.bn.meiliName__c;
        ins.meiliFen__c = this.bn.meiliFen__c;
        ins.meiliTime__c = this.bn.meiliTime__c;
        ins.meiliNote__c = this.bn.meiliNote__c;
        ins.fenlei__c = optionAcc;
        Insert ins;
        PageReference pageRef = new PageReference('/apex/he');
        return pageRef;
    }
    
}

 

编辑页面(bianji.vfp):

<apex:page StandardController="meili__c" extensions="z13">

    <apex:includeScript value="{!URLFOR($Resource.data,'layDate-v5.0.9/laydate/laydate.js')}"/>
    <apex:includeScript value="{!$Resource.tijiao}"/>
    <apex:stylesheet value="{!$Resource.style}"/>

    <apex:pageBlock title="编辑页面">
        <apex:pageBlockSection title="编辑数据">
    <apex:form >
        <apex:pageBlockSection >
            美丽ID:<apex:inputText value="{!meiliid}" id="meili"/>   
        </apex:pageBlockSection>
        
        <apex:pageBlockSection >
             美丽name:<apex:inputText value="{!meiliname}"/>  
        </apex:pageBlockSection>
        
        <apex:pageBlockSection >
             美丽分值:<apex:inputText value="{!meilifen}"/> 
        </apex:pageBlockSection>
        
        <apex:pageBlockSection >
             时间: <apex:inputField value="{!meili__c.meiliTime__c}" />
        </apex:pageBlockSection>
        <apex:pageBlockSection >
             备注:<apex:inputText value="{!meilinote}"/>
        </apex:pageBlockSection>
        
        <apex:outputPanel >
        <apex:commandButton value="确认修改" action="{!upd}"/>
    </apex:outputPanel>

    </apex:form>
        </apex:pageBlockSection>
    </apex:pageBlock>
</apex:page>

 

编辑后台(z13.apxc):

public with sharing class z13 {
    private final  meili__c qiantai;
    public meili__c selectmeili {get;set;}
    public String meiliid{get;set;}
    public String meiliname{get;set;}
    public Integer meilifen{get;set;}
    public Date meilitime{get;set;}
    public String meilinote{get;set;}

    public z13(ApexPages.StandardController stdController){
        string xid = apexpages.currentPage().getParameters().get('xid'); 
	    selectmeili = ([select meili__c.ckk__c,meili__c.meiliID__c,meili__c.meiliName__c,meili__c.meiliFen__c,meili__c.meiliTime__c,meili__c.meiliNote__c from meili__c where meili__c.meiliID__c=:xid]);
        meiliid = selectmeili.meiliID__c;
        meiliname = selectmeili.meiliName__c;
        meilifen = (Integer)selectmeili.meiliFen__c;
        meilitime = selectmeili.meiliTime__c;
        meilinote = selectmeili.meiliNote__c;
        this.qiantai = (meili__c)stdController.getRecord();
        this.qiantai.meiliTime__c = selectmeili.meiliTime__c;
    }
    
    
    public PageReference upd(){
        selectmeili.meiliName__c = meiliname;
        selectmeili.meiliFen__c = meilifen;
        selectmeili.meiliTime__c = this.qiantai.meiliTime__c;
        selectmeili.meiliNote__c = meilinote;
        UPDATE selectmeili;
        PageReference pageRef = new PageReference('/apex/he');
        return pageRef;
    }
    
}

 

tijiao.js:


function selectAllCheckboxes1(obj, receivedInputID) 
  {
  	var ax ='';
      var inputCheckBox = document.getElementById('j_id0:shaixuan:j_id17:j_id18').getElementsByTagName('input');
      for (var i = 0; i < inputCheckBox.length; i++) {
          if (inputCheckBox[i].id.indexOf(receivedInputID) != -1) 
          {
              inputCheckBox[i].checked = obj.checked;
              ax += inputCheckBox[i].parentNode.nextSibling.children[0].innerText+',';
          }
      }

      if(obj.checked){
                quanxuanzhong(ax);
              }else{
                quanbuxuan(ax);
              }
  }


function doCheckboxChange(cb,itemId){
 
            if(cb.checked==true){
                aSelectItem(itemId);
            }
            else{
                aDeselectItem(itemId);
            }
 
}

 

style.css:

.head{
	width:100%;
	height:40px;
	background:pink;
	color:#000;
}
.bodd{
	width:100%;
	height:auto;
}
.left{
	width:10%;
	float:left;
	background:orange;
	color:#000;
	height:400px;
}
.right{
	width:90%;
	float:left;
	background:yellow;
	color:#000;
	height:400px;
}
.clear{
	clear:both;
}

 

显示效果:

首页全部:

 

首页筛选:

 首页分页默认改为3:

首页全选:

 

新增页面:

 

修改页面:

 

 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值