我正在尝试在另一个数据库中获取照片,以在重复控制列中显示为图标。我只是找不到使它工作的方法。我确实知道要存储照片的文档,并尝试了各种方法使其正常工作。
我希望图标显示在下面的代码中
这是我的代码。
<div class="panel-body">
<xp:panel styleClass="form-group" tagName="div">
<xe:widgetContainer id="widgetContainer2"
titleBar="false">
<!-- Show pager controls at top-->
<xp:this.rendered><![CDATA[#{javascript:view1.getAllDocumentsByKey(session.getEffectiveUserName()).getCount().toFixed()>0}]]></xp:this.rendered>
<xp:panel id="topControls" styleClass="row topPager">
<div class="col-sm-12">
<xp:pager layout="Previous Group Next" partialRefresh="true"
id="pager1" for="repeat1" styleClass="pull-right">
</xp:pager>
</div>
</xp:panel>
<!-- Show table with Data -->
<xp:panel id="details" styleClass="col-md-12">
<div id="resultsDiv">
<table class="table table-condensed">
<thead>
<tr>
<th style="width 5px">
</th>
<th style="width: 70px;">
<xp:text escape="true" id="computedField18" tagName="label"
value="${langBean.MyAttachTableNickName}">
</xp:text>
</th>
<th style="width: 10px;">
<xp:text escape="true" id="computedField5" tagName="label"
value="${langBean.MyAttachTableSerialNbr}">
</xp:text>
</th>
<th style="width: 70px;">
<xp:text escape="true" id="computedField1" tagName="label"
value="${langBean.MyAttachTableModelNbr}">
</xp:text>
</th>
<th style="width 70px"></th>
</tr>
</thead>
<tbody>
<xp:repeat id="repeat1" var="rowData" indexVar="ind"
value="#{view1}" rows="10" repeatControls="true">
<tr>
<td>
<xp:text escape="false">
</xp:text>
<xe:multiImage>
<xe:this.value><![CDATA[#{javascript:importPackage (com.cascorp);
var url
var photoURL
if(rowData.isDocument()){
var iconName = rowData.getDocument().getItemValue("icon")
var whURL = configBean.getValue("WorkHorseURL")
var whDbPath = configBean.getValue("WorkHorseDbPath")
var hostURL = configBean.HostURL
var db: NotesDatabase = session.getDatabase("",whDbPath, false)
//get document in whdb
var v1:NotesView = db.getView("fsSmlu")
var v2:NotesView = db.getView("attachmentImagesSmall")
var whDoc:NotesDocument = v1.getDocumentByKey(iconName);
if(whDoc == null){
dBar.info("whDoc is null")
} else {
var itemValue = whDoc.getItemValueString("smKey")
var imageDoc:NotesDocument = v2.getDocumentByKey(itemValue)
}
photoURL="/"+imageDoc.getUniversalID()+"/RTF/0.84?OpenElement&FieldElemFormat=jpg"
})
try{
url=configBean.HostURL+configBean.WorkHorseURL+photoURL
dBar.info("URL >>> " +url)
}catch (e){
dBar.info("ERROR: "+ e.toString())
return e.toString()
}
return url
} else {
dBar.info("rowData is not document")
}
}]]>
</xe:this.value>
<xe:this.icons>
<xe:iconEntry
url="#{viewScope.photoURL}">
</xe:iconEntry>
</xe:this.icons>
</xe:multiImage>
</td>
<td>
<xp:text escape="true" value="#{rowData.Attachment}"
id="computedield12" value="#{rowData.serialNbr}">
</xp:link>
</td>
<td>
<xp:text escape="true" id="computedField6" value="#{rowData.serialNbr}">
</xp:text>
</td>
<td>
<xp:text escape="true" id="computedField2" value="#{rowData.modelNbr}">
</xp:text>
</td>
</tr>
</xp:repeat>
</tbody>
</table>
</div>
</xp:panel>
<!-- Footer row with pager -->
<xp:panel id="panel7" styleClass="row">
<div class="col-sm-12">
<xp:pager layout="Previous Group Next" partialRefresh="true"
id="pager4" for="repeat1" styleClass="pull-right">
</xp:pager>
<xe:pagerSizes id="pagerSizes1" for="repeat1"
text="${langBean.pagerSizesPretext} {0} #{langBean.pagerSizesPosttext}">
</xe:pagerSizes>
</div>
</xp:panel>
</xe:widgetContainer>
</xp:panel>
</div>
</xe:widgetContainer>
我在做什么错了?
答案 0 :(得分:1)
迈克,首先,以下代码块会产生一个“属性'值'已经指定的错误,并将使您的代码无法编译:
<td>
<xp:text escape="true" value="#{rowData.Attachment}" id="computedield12" value="#{rowData.serialNbr}">
</xp:link>
</td>
对于照片问题,此处使用的xe:multiImage控件不正确。 xe:multiImage用于有条件地显示一个或另一个图像。您只定义了一个xe:iconEntry,因为它没有selectedValue属性,所以您未正确调用它。
相反,将xe:multiImage代码替换为xp:image控件以显示单张照片:
<xp:image id="image1">
<xp:this.url><![CDATA[#{javascript:
var url = "";
// add code here to return url to image to display
//
// then
return url ;}]]>
</xp:this.url>
</xp:image>