zoukankan      html  css  js  c++  java
  • Primeface datatable celleditor rowedit 例子

    View Code
    自己目前开发的项目中使用的错误类型词条编辑的功能,使用 datatable行编辑
      1 <h:form id="typeform">
      2          <p:growl id="msge" showDetail="true"/>
      3        <p:outputPanel id ="paneltype" >
      4         <p:dataTable id="tabletype" var="tp"
      5                      value="#{typeProblemAction.typeofproblemList}" resizableColumns="true" emptyMessage="没有记录"
      6                          editable="true"   rows="10"         dynamic ="true"
      7                          onRowEditUpdate="msge"
      8                          paginator="true"
      9                          scrollable="true"
     10                          selection="#{typeProblemAction.selectType}"
     11                          selectionMode="single" rowKey="#{tp.id}"
     12 
     13 
     14                          paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
     15                          rowsPerPageTemplate="20,50,100"
     16                     >           <p:ajax listener="#{typeProblemAction.rowEdit}" event="rowEdit" update=":typeform:msge"/>
     17             <p:ajax event="rowSelect" update =":typeform:tabletype :typeform:paneltype" listener="#{typeProblemAction.onSelectRecord}"/>
     18             <p:column id="selectline" selectionMode="single">
     19                 <p:cellEditor>
     20                 <f:facet name="output">
     21                     <h:outputText value="选择">
     22                     </h:outputText>
     23                 </f:facet>
     24                     <f:facet name="input">
     25                         <h:outputText value="选择">
     26                         </h:outputText>
     27                     </f:facet>
     28                 </p:cellEditor>
     29             </p:column>
     30                 <p:column style="80px" sortBy="#{tp.id}"
     31                           headerText="编号"
     32                           filterBy="#{tp.id}" filterMatchMode="startsWith">
     33 
     34                     <p:cellEditor>
     35                         <f:facet name="output">
     36                             <h:outputText value="#{tp.id}"/>
     37                         </f:facet>
     38                         <f:facet name="input">
     39                             <p:inputText value="#{tp.id}" />
     40                         </f:facet>
     41                     </p:cellEditor>
     42 
     43 
     44                 </p:column>
     45                 <p:column style="80px" headerText="简介"
     46                           filterBy="#{tp.message}"
     47                           filterMatchMode="contains">
     48 
     49                     <p:cellEditor>
     50                         <f:facet name="output">
     51                             <h:outputText value="#{tp.message}"/>
     52                         </f:facet>
     53                         <f:facet name="input">
     54                             <p:inputText value="#{tp.message}"/>
     55                         </f:facet>
     56                     </p:cellEditor>
     57 
     58                 </p:column>
     59 
     60 
     61                 <p:column headerText="错误类型" style="25px">
     62                     <p:cellEditor>
     63                         <f:facet name="output">
     64                             <h:outputText value="#{tp.status}"/>
     65                         </f:facet>
     66                         <f:facet name="input">
     67                             <h:selectOneMenu value="#{tp.status}">
     68                                 <f:selectItem   itemLabel="激活"    itemValue="Y"/>
     69                                 <f:selectItem  itemLabel="失效"     itemValue="N"/>
     70                             </h:selectOneMenu>
     71                         </f:facet>
     72                     </p:cellEditor>
     73                 </p:column>
     74 
     75                 <p:column headerText="编辑行" style="50px">
     76                     <p:rowEditor>
     77 
     78                     </p:rowEditor>
     79 
     80                 </p:column>
     81 
     82             </p:dataTable>
     83 
     84             <p:commandButton value="添加"      rendered="#{not empty typeProblemAction.selectType}"
     85                              update=":typeform" actionListener="#{typeProblemAction.addNewLine}">
     86             </p:commandButton>
     87             <p:commandButton value="删除"    immediate="true"    rendered="#{not empty typeProblemAction.selectType}"
     88                              onclick="cd.show()"  >
     89             </p:commandButton>
     90                 <p:confirmDialog message="要删除该纪录吗?"
     91                                  header="删除纪录" severity="alert"
     92                                  widgetVar="cd">
     93                     <p:commandButton value="确认" immediate="true" actionListener="#{typeProblemAction.deleteLine}"
     94                                      update=":typeform:paneltype :typeform:msge" oncomplete="cd.hide()"/>
     95                     <p:commandButton value="取消" onclick="cd.hide();" type="button" />
     96                 </p:confirmDialog>
     97 
     98 
     99              </p:outputPanel>
    100 
    101         </h:form>
    102         </div>
     
     
    View Code
     1 public void rowEdit(RowEditEvent ev) {
     2       Typeofproblem obj = null;
     3      try {
     4             obj = (Typeofproblem) ev.getObject();  obj.setLastdate(new java.util.Date());
     5            typeProblemService.updateTypeProblem(obj);
     6             FacesContext.getCurrentInstance().addMessage(nullnew FacesMessage(FacesMessage.SEVERITY_WARN, "编辑保存", obj.toString()));
     7            } catch (Exception ex) {
     8                FacesContext.getCurrentInstance().addMessage(nullnew FacesMessage(FacesMessage.SEVERITY_ERROR, "Error !", ex.toString()));
     9                  FacesContext.getCurrentInstance().validationFailed();
    10               }
    11        }
    12    public  String addNewLine(){
    13        try{
    14            Typeofproblem tp =new Typeofproblem();
    15            tp.setStatus("N");
    16            tp.setLastdate(new java.util.Date());
    17           if (this.selectType!=null) {
    18               tp.setId(this.selectType.getId()+".00");
    19           }
    20          if( typeProblemService.insertTypeProblem(tp)==1)
    21           MessageUtil.addInfo("生成新纪录");
    22           // typeofproblemList=typeProblemService.selectTypeList();
    23            typeofproblemList.add(typeofproblemList.indexOf(selectType)+1 ,tp);
    24           // selectType=tp;
    25        }
    26        catch (Exception e){
    27            MessageUtil.addError("生成新纪录出错" + e.getMessage());
    28        }
    29        return null
    30    }
    31     public  String deleteLine(){
    32         try{
    33 
    34             if (this.selectType!=null) {
    35                 int i =0;
    36                 for(Typeofproblem t :typeofproblemList){
    37                     if (t.getId().startsWith(selectType.getId())){
    38                          i++;
    39                     }
    40                 }
    41                 if (i>1){ //存在下级
    42                     MessageUtil.addError(selectType.getId()+ "存在下级纪录!");
    43                     return  null;
    44                 }
    45                 typeProblemService.deleteTypeProblem(selectType);
    46                 //typeofproblemList=typeProblemService.selectTypeList();
    47                 typeofproblemList.remove(selectType);
    48 
    49                 logger.debug(selectType.getId()+" delete"); selectType=null;
    50             }
    51 
    52         }
    53         catch (Exception e){
    54             MessageUtil.addError("删除出错" + e.getMessage());
    55         }
    56         return null;
    57     }
    58     public String onSelectRecord( SelectEvent event) {
    59         Typeofproblem tp= (Typeofproblem) event.getObject();
    60     return null;
    61     }
  • 相关阅读:
    ajax 重复提交
    函数中对象名的传参形式
    传参格式
    字体和排版
    自学设计
    假如java类里的成员变量是自身的对象
    java中的锁之AbstractQueuedSynchronizer源码分析(一)
    java中的锁之Lock接口与Condition接口
    Comparator与Comparable用法与区别
    session与cokkie区别
  • 原文地址:https://www.cnblogs.com/cndavy/p/2480059.html
Copyright © 2011-2022 走看看