0

リンクされた一連の更新ドキュメントを含むメイン ドキュメントがあり、いくつかのフィールドとリッチ テキストの Body フィールドがあります。繰り返しコントロールの更新から任意のビュー列を表示できますが、繰り返しコントロールにもリッチ テキスト フィールドを表示したいと考えています。

私はいくつかのアプローチを試しましたが、これまでのところ何もうまくいきませんでした。

私はこの解決策を試しました:

rowData.getDocument().getFirstItem("Body").getMIMEEntityAsText()

そしてこれ:

rowData.getDocument().getFirstItem("Body").getMIMEEntity().getContentAsText(); 

そしてこれ:

http://iqjam.net/iqjam/iqjam.nsf/questions/20100914_How_to_Display_a_RichText_fiel.htm

<xp:repeat id="repeat1" rows="30" value="#{view1}" var="row">
    <xp:panel>
        <xp:this.data>
            <xp:dominoDocument var="doc" action="openDocument"
                documentId="#{javascript:row.getNoteID()}">
            </xp:dominoDocument>
        </xp:this.data>
        <xp:inputRichText id="inputRichText1" value="#{doc.ArticleContent}"
            readonly="true">
        </xp:inputRichText>
    </xp:panel>
</xp:repeat>

そしてこれ:

http://www.ibmpressbooks.com/articles/article.asp?p=1681058&seqNum=4

var nd:NotesDocument = rowData.getDocument();
var mime = nd.getMIMEEntity("body");
// if it is MIME then you can passthrough as HTML
if (mime != null) {
      return mime.getContentAsText();
}
// Otherwise just return the plain text
else {
      return nd.getItemValueString("body");
}

どちらもテキストのみのドキュメントのみを表示します。画像が埋め込まれている場合、または画像とテキストが混在している場合は、何も表示されません。

提案をいただければ幸いです...

4

4 に答える 4

4

したがって、ティムがignoreRequestParams="true"追加された場合、これは機能します。

<xp:repeat id="repeat1" rows="30" value="#{view1}" var="row">
    <xp:panel>
        <xp:this.data>
            <xp:dominoDocument var="doc" action="openDocument"
                documentId="#{javascript:row.getNoteID()}" 
                ignoreRequestParams="true">
            </xp:dominoDocument>
        </xp:this.data>
        <xp:inputRichText id="inputRichText1" value="#{doc.ArticleContent}"
            readonly="true">
        </xp:inputRichText>
    </xp:panel>
</xp:repeat>
于 2013-04-30T19:52:27.763 に答える
1

Fredrik が書いたように、マルチパート MIME フィールドがあるため、すべてのエントリ (テキストと画像) を確認する必要があります。

<xp:text escape="false" id="subContent">
                                        <xp:this.value><![CDATA[#{javascript:
session.setConvertMIME(false);
if(level3List != null){
var nd:NotesDocument = level3List.getDocument();
if(nd != null){
 try{   
  requestScope.status = "";
  var cItem:NotesRichTextItem = nd.getFirstItem("content");
  var mime:NotesMIMEEntity = cItem.getMIMEEntity();
  if (mime != null) {
   // If multipart MIME entity
   if (mime.getContentType().equals("multipart")) {
    // Print content of each child entity
    var child1:NotesMIMEEntity = mime.getFirstChildEntity();
    while (child1 != null) {
     if(child1.getEncoding()==1727){
      //gif             
        requestScope.status +=
        "<img src=\"data:image/png;base64," + 
        child1.getContentAsText() +
        "\"/>"              
      }else{
       //plain
       requestScope.status += 
       child1.getContentAsText() //+ "\n"
     }          
      var child2:NotesMIMEEntity = child1.getFirstChildEntity();
       if (child2 == null) {
        child2 = child1.getNextSibling();
        if (child2 == null) {
         child2 = child1.getParentEntity();
        if (child2 != null) {
         child2 = child2.getNextSibling();
        }
       }
      }
      child1 = child2;
     }
      } else {
     // plain mime no multi
     requestScope.status = mime.getContentAsText();
    }
    } else {
    // No mime > plain text
    requestScope.status = nd.getFirstItem("content").getText();
    }
    // return to display
    return requestScope.status;
  }catch(e){
    return nd.getFirstItem("content").getText();
   }    
  }
}
// Restore conversion
session.setConvertMIME(true);}]]></xp:this.value>
</xp:text> 

現時点で私が直面している唯一の問題は、画像の位置が失われていることです。それらはすべて下部に表示されます。

このコードは、IBM のドキュメントでも同様のものを見つけることができます

IBM

于 2013-04-30T15:38:10.070 に答える
0

これがあなたが探しているものかどうかはわかりませんが、ねえ。これは、RichText フィールドからの画像を表示する、少し前に行った繰り返しコントロールです。これが画像を表示できる唯一の方法であり、より良い解決策を探すのに数え切れないほどの時間を費やしました.

<xp:repeat id="repeat1" rows="30" var="imagename" indexVar="index">
      <xp:panel></xp:panel>
      <xp:this.value><![CDATA[#{javascript:doc.getItemValueArray("imagenames")}]]></xp:this.value>
      <xp:text escape="false" id="computedField1">
        <xp:this.value><![CDATA[#{javascript:var url = "/" + @ReplaceSubstring(database.getFilePath(), "\\", "/") + "/0/" +
document1.getDocument().getUniversalID()
url += "/$FILE/" + escape(imagename);
return "<a dojoType=\"dojox.image.Lightbox\" group=\"group1\" title=\"" +
imagename + "\" href=\"" + url + "\">" + imagename + "</a><br />"}]]></xp:this.value>
      </xp:text>
    </xp:repeat>
于 2013-04-26T22:34:12.803 に答える