在重复控制列中显示图标

时间:2018-12-06 16:47:45

标签: xpages

我正在尝试在另一个数据库中获取照片,以在重复控制列中显示为图标。我只是找不到使它工作的方法。我确实知道要存储照片的文档,并尝试了各种方法使其正常工作。

我希望图标显示在下面的代码中

这是我的代码。

    <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>

我在做什么错了?

1 个答案:

答案 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>