私は次のように持っています:
決定された瞬間にユーザーのリストに割り当てられたモバイルの履歴を印刷するデータテーブルがあります。そのデータテーブルには、割り当てられたものと割り当てられていないものの両方が印刷されます。管理者が特定の割り当てを編集したい場合、割り当ての日付、期限切れの日付を変更できます、回線数、携帯電話など...まあ、その時点で誰にも割り当てられていない、このユーザーに編集する携帯電話と回線のみを表示するクエリを作成し、そのために割り当てられている回線と端末を表示しますその瞬間のユーザーは、自分の番号と端末に関連するいくつかのフィールドを編集し、別の携帯電話または回線を割り当てる必要がない場合、そのユーザーに割り当てられた回線と携帯電話は編集用に表示されず、義務付けられます。別のものを選択します。
それだけですが、割り当てコードに基づいてモバイルのリストとリストをロードして、モーダル ブートストラップ フォームが表示されたときにクエリのフィルターを作成する方法がわかりません。選択すると、このコードに従ってこのデータが取得されます。コード:
asignacion.jsf
<h:dataTable columnClasses="codigo, fechaini, fechafin, terminal, usuario, numero, perfil, asignado" class="table table-striped table-bordered bootstrap-datatable datatable" value="${listaTerminales.listaAsigMovil_2}" var="o">
<h:column class="hide">
<f:facet name="header">
<h:outputText value="Codigo"/>
</f:facet>
<h:outputText value="${o.codigo}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Fecha Asignación"/>
</f:facet>
<h:outputText value="${o.fechaIniStr}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Fecha Baja"/>
</f:facet>
<h:outputText value="${o.fechaFinStr}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Terminal"/>
</f:facet>
<h:inputHidden class="idTerminal" value="${o.codigoTerminal.codigo}" />
<h:outputText value="${o.codigoTerminal.marca} ${o.codigoTerminal.modelo}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Usuario"/>
</f:facet>
<h:outputText value="${o.dni.dni}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Número"/>
</f:facet>
<h:outputText value="${o.codigoNumero.numero}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Perfil"/>
</f:facet>
<h:inputHidden class="idPerfil" value="${o.codigoPerfil.codigo}" />
<h:outputText value="${o.codigoPerfil.descripcion}"/>
</h:column>
<c:if test="${rol == 'administrador'}">
<h:column>
<f:facet name="header">
<h:outputText value="Asignado"/>
</f:facet>
<h:outputText value="${o.asignado}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Acciones"/>
</f:facet>
<a data-toggle='modal' href='#asig-movil' class='btn btn-success edit'>
<i class='icon3-edit icon-white'></i>Editar</a>
</h:column>
</c:if>
</h:dataTable>
<!-- start modal -->
<div class="hide fade modal" id="asig-movil">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>Editar Datos</h3>
</div>
<h:form class="form-horizontal well" id="form-asig-movil">
<div class="modal-body">
<fieldset>
<h:inputHidden id="codigo-form" value="#{terminalesBean.codigoAsig}">
</h:inputHidden>
<h:inputHidden id="dni-form" value="#{listaTerminales.dni}"></h:inputHidden>
<h4>Asignado: </h4><h:selectOneRadio layout="lineDirection" id="asignado-form" value="#{listaTerminales.codAsignado}">
<f:selectItem id="y" itemLabel="SI" itemValue="S"/>
<f:selectItem id="n" itemLabel="NO" itemValue="N"/>
</h:selectOneRadio>
<h4>Número de Teléfono: </h4><h:selectOneMenu class="validate[required]" id="numero-form" value="#{listaTerminales.codigoNumero}">
<f:selectItems var="l" itemLabel="#{l.numero}" itemValue="#{l.codigo}" value="#{lineasBean.listaLineasNoAsig}" />
</h:selectOneMenu>
<h4>Terminal: </h4><h:selectOneMenu class="validate[required]" id="terminal-form" value="#{listaTerminales.codigoTerminal}">
<f:selectItems var="t" itemLabel="#{t.marca} #{t.modelo}" itemValue="#{t.codigo}" value="#{terminalesBean.terminalesMovilAndAsig}" />
</h:selectOneMenu>
<h4>Perfil </h4><h:selectOneMenu class="validate[required]" id="perfil-form" value="#{listaTerminales.codigoPerfil}">
<f:selectItems var="p" itemLabel="#{p.descripcion}" itemValue="#{p.codigo}" value="#{perfilBean.listaPerfiles}" />
</h:selectOneMenu>
<h4>Fecha asignación: </h4><h:inputText class="validate[required]" id="fechaini-form" value="#{listaTerminales.fechaAsig}"></h:inputText>
<h4>Fecha finalización: </h4><h:inputText class="validate[required]" id="fechafin-form" value="#{listaTerminales.fechaFin}"></h:inputText>
</fieldset>
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Cancelar</a>
<p:commandButton id="okInsertar" onclick="if($('#form-asig-movil').validationEngine('validate')===false){return false;}"
styleClass="btn btn-primary ok" value="Ok" action="#{listaTerminales.modificar()}"
oncomplete="checkCRUD(xhr, status, args)">
</p:commandButton>
</div>
</h:form>
</div>
<!-- end modal -->
端末Bean.java
package app.bean;
import app.dao.TerminalFacade;
import app.entity.Terminal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import org.primefaces.context.RequestContext;
/**
*
* @author Usuario
*/
@ManagedBean
@RequestScoped
@ViewScoped
public class terminalesBean {
@EJB
private TerminalFacade termFac;
private int codigo;
private String fecha_alta;
private Date fecha_alta_date;
private String marca;
private String modelo;
private String configuracion;
private int sn;
private List<Terminal> terminales;
private int codigoAsig;
public int getCodigo(){
return this.codigo;
}
public void setCodigo(int codigo){
this.codigo = codigo;
}
public String getFechaAlta(){
SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
if(fecha_alta_date!=null)
return formatoFecha.format(fecha_alta_date);
return null;
}
public void setFechaAlta(String fecha){
SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
try {
this.fecha_alta_date = formatoFecha.parse(fecha);
this.fecha_alta = fecha;
} catch (ParseException ex) {
Logger.getLogger(lineasBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
public String getMarca(){
return this.marca;
}
public void setMarca(String marca){
this.marca = marca;
}
public String getModelo(){
return this.modelo;
}
public void setModelo(String modelo){
this.modelo = modelo;
}
public String getConfiguracion(){
return this.configuracion;
}
public void setConfiguracion(String configuracion){
this.configuracion = configuracion;
}
public int getSN(){
return this.sn;
}
public void setSN(int sn){
this.sn = sn;
}
public void setCodigoAsig(int codigoAsig){
this.codigoAsig = codigoAsig;
}
public int getCodigoAsig(){
return this.codigoAsig;
}
public List<Terminal> getTerminales(){
terminales = (List<Terminal>)termFac.findAll();
return this.terminales;
}
public List<Terminal> getTerminalesFijoAndAsig(){
terminales = (List<Terminal>)termFac.findByFijoAndAsig(this.codigoAsig);
return this.terminales;
}
public List<Terminal> getTerminalesMovilAndAsig(){
terminales = (List<Terminal>)termFac.findByMovilAndAsig(this.codigoAsig);
return this.terminales;
}
public void setTerminales(List<Terminal> terminales){
this.terminales = terminales;
}
public void borrar(){
Terminal t = new Terminal();
t = termFac.find(codigo);
termFac.delete(t);
}
public void insert(){
Terminal t;
t =(Terminal)termFac.findbysn(sn);
if(t == null && this.sn != 0){
t = new Terminal();
//t.setCodigo(codigo);
t.setFechaAlta(new Date());
t.setConfiguracion(configuracion);
t.setMarca(marca);
t.setModelo(modelo);
t.setSn(sn);
termFac.insert(t);
}
else{
t.setConfiguracion(configuracion);
t.setMarca(marca);
t.setModelo(modelo);
t.setSn(sn);
termFac.edit(t);
}
RequestContext reqCtx = RequestContext.getCurrentInstance();
reqCtx.addCallbackParam("codigo", t.getCodigo());
reqCtx.addCallbackParam("fecha_alta", t.getFechaAltaStr());
reqCtx.addCallbackParam("marca", t.getMarca());
reqCtx.addCallbackParam("modelo", t.getModelo());
reqCtx.addCallbackParam("configuracion", t.getConfiguracion());
reqCtx.addCallbackParam("sn", t.getSn());
}
public terminalesBean() {
}
}
${o.codigo} パラメータをメソッド setCodigAsig() に渡してから、メソッド getTerminalesMovilAndAsig() でフィルタを作成し、モーダル ロードで ID「numero-form」と「terminal-form」のコンテンツをロードします。データテーブルの各行で [編集] をクリックし、このコードに従ってこのコンテンツのモーダル フォームを動的にロードすると、どうすればよいでしょうか?
よろしく!