首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从<p:galleria获取所选图像

问如何从<p:galleria获取所选图像
EN

Stack Overflow用户
提问于 2013-06-06 03:58:20
回答 2查看 2.7K关注 0票数 6

在这段代码中,

代码语言:javascript
复制
<p:galleria value="#{Bean.images}" var="image" panelWidth="500" panelHeight="313" showCaption="true"
<p:graphicImage value="/images/galleria/#{image}" alt="Image Description for #{image}" title="#{image}"/ 
</p:galleria>

如何获取selectedImage?中所表示的

代码语言:javascript
复制
<p:carousel id="carousel" value="#{tableBean.carsSmall}" var="car" itemStyleClass="carItem" headerText="Cars"> 
    <p:graphicImage id="image" value="/images/cars/#{car.manufacturer}.jpg"/>   

    <h:panelGrid columns="2" style="width:100%" cellpadding="5"> 
        <h:outputText value="Model: " /><h:outputText id="model" value="#{car.model}" /> 
    </h:panelGrid> 

    <p:commandLink id="view" update=":form:carDetail" oncomplete="carDialog.show()" title="View Detail"> 
        <h:outputText styleClass="ui-icon ui-icon-search" style="margin:0 auto;" />   
        <f:setPropertyActionListener value="#{car}"   
                target="#{tableBean.selectedCar}" /> 
    </p:commandLink> 
</p:carousel>  
EN

回答 2

Stack Overflow用户

发布于 2016-03-11 07:14:52

假设您在当前显示的每个图片上都有一个详细信息按钮(将alt属性设置为image filename)

代码语言:javascript
复制
<p:galleria value="#{Bean.images}" var="image">
  <p:graphicImage value="/images/galleria/#{image}"/>

  <f:facet name="content"> 
    <p:graphicImage value="/images/galleria/#{image}" alt="#{image}" />
    <span style="position:absolute;right:0;top:0;">
      <p:commandButton styleClass="ui-icon ui-icon-search" onclick="jsCallRemote(this);" />
    </span>
 </f:facet>
</p:galleria>

搜索按钮可以调用一个js函数,将按钮本身作为提示来查找当前图像文件名,然后调用一个远程命令,将文件名作为请求参数传递给它:

代码语言:javascript
复制
<script>
function jsCallRemote(btn) {
    var imageFileName = btn.parentNode.parentNode.getElementsByTagName('img')[0].alt;
    selectImage([{name:'imageFileName', value:imageFileName}]);
}
</script>

<p:remoteCommand name="selectImage" actionListener="#{tableBean.selectImage}" />

bean的方法通过请求参数imageFileName进行实际选择:

代码语言:javascript
复制
public void selectImage() {
  String fileName = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("imageFileName");
  // find image by filename...
}
票数 3
EN

Stack Overflow用户

发布于 2019-03-18 15:51:03

如果你不打算让每个图片都有一个按钮,你可以利用galleria 来捕捉所选的图片标题。此解决方案基于andreea m的答案。

代码语言:javascript
复制
        <p:commandButton action="#{controller.preview}" value="Preview" onclick="checkSelectedImage();" oncomplete="PF('previewDialog').show();"/>

JS函数

代码语言:javascript
复制
      function checkSelectedImage() {
            var caption = document.getElementsByClassName("ui-galleria-caption");
            selectImage([{name:'imageFileName', value:caption[0].getElementsByTagName("h4")[0].innerHTML}]);
        }

远程命令

代码语言:javascript
复制
    <p:remoteCommand name="selectImage" actionListener="#{controller.selectImage}"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16948731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档