私はすべての製品を示す以下の繰り返し制御を持っている:パフォーマンスを向上させるために、コントロールを繰り返し、dbとviewを渡しますか?
getImgURLForProductは別のデータベースからURLを構築します<xp:repeat id="rptProduct" rows="16" value="#{vwProduct}"
var="productRow">
<xp:panel styleClass="linkPanel" id="panel1">
<xp:text escape="false" id="imgHTML">
<xp:this.value><![CDATA[#{javascript:getImgURLForProduct(productRow.getDocument());}]]></xp:this.value>
</xp:text>
<xp:eventHandler event="onClientLoad"
submit="true" refreshMode="norefresh"></xp:eventHandler></xp:panel>
</xp:repeat>
:
function getImgURLForProduct(doc:NotesDocument) {
var resourceDB:NotesDatabase = session.getDatabase(getWebServer(), applicationScope.aspCRMResourceDBPath);
var strReturnVal:String = "<a style='text-decoration: none;' href='#'>";
if (resourceDB != null) {
if (resourceDB.isOpen()) {
var vwResource:NotesView = resourceDB.getView("vwLookupAttachmentsForPrimaryImg");
if (vwResource != null) {
var pictureDoc:NotesDocument = vwResource.getDocumentByKey(doc.getItemValueString("fldProductCode"), true);
if (pictureDoc != null) {
if (pictureDoc.hasItem("fldThumbImage")) {
var rtiLockPicture:NotesRichTextItem = pictureDoc.getFirstItem("fldThumbImage");
var eos:java.util.Vector = rtiLockPicture.getEmbeddedObjects();
if (eos.isEmpty() == false) {
var eosi:java.util.Iterator = eos.iterator();
while (eosi.hasNext()) {
var eo:NotesEmbeddedObject = eosi.next();
if (eo.getType() == NotesEmbeddedObject.EMBED_ATTACHMENT) {
var strImageFile:String = "/" + applicationScope.aspCRMResourceDBPath + "/0/" + pictureDoc.getUniversalID() + "/$file/" + eo.getSource();
strReturnVal += "<img src='" + strImageFile + "' alt='" + eo.getSource() + "' border='0' width='105'>";
}
}
}
}
}
}
}
}
strReturnVal += "<br /><br /><span>" + doc.getItemValueString("fldProductCode") + "</span>";
strReturnVal += "</a>";
return strReturnVal;
}
私はそのようにデシベルコードを向上させることができどのように思っていましたビューは、繰り返し制御内の各アイテムごとに初期化されていませんか?
ありがとうポール - 非常に感謝しています - それをさらに調査し、コードを改善できるかどうかを確認します。 – pipalia
それは働いた!ありがとうポール、非常に感謝します。 – pipalia