0

私は道場に少し問題があります。私の XPages アプリケーションでは、dojox.image.Gallery を使用して imageGallery を実装したいと考えています。

すべての設定が完了し、エージェントは JSON データを返します。これまでのところ有効なようです。

その構造は次のようになります。

{ items: [ { "thumb":"linktothumbnail", "large":"linktolargepic", "title":"whatever1", "link" :"www.google.de" },{... など。 ..

写真への URL は有効です。確認しました。

1 つを除いて、すべてが機能し、エラー メッセージは表示されません。"NetworkError: 404 Not Found - http://www.myserver.de/path/to/database.nsf/undefined " Thumbnailpicker の src 属性が "undefined" です

ウェブをクロールしましたが、これまでのところ結果はありません。

これは XPage の私のコードです:

<xp:this.resources>
        <xp:dojoModule name="dojox.image.Gallery"></xp:dojoModule>
        <xp:dojoModule name="dojo.data.ItemFileReadStore"></xp:dojoModule>
        <xp:dojoModule name="dojo.parser"></xp:dojoModule>
    </xp:this.resources>
    <xp:div id="Wrapper">
        Test

        <div jsId="imageItemStore" dojoType="dojo.data.ItemFileReadStore"
            url="#{javascript:return facesContext.getExternalContext().getRequestContextPath() + '/returnMemberDataJSON?OpenAgent';}">
        </div>  

        <div id="gallery1" dojoType="dojox.image.Gallery"  imageHeight="400" imageWidth="550">
            <script type="dojo/connect">
                var itemRequest = {
                    query: {},
                    count: 20
                };
                var itemNameMap = {
                    imageThumbAttr: "label",
                    imageLargeAttr: "name"
                };
                this.setDataStore(imageItemStore, itemRequest, itemNameMap);
            </script>
        </div>

    </xp:div>

私には有効なようです。自動的に行われていないように見えたので、テーマを介して Dojo スタイルを実装しました。必要なすべての画像もインポートされます。

私のページの結果は、ThumbnailPicker があるべき場所です。コードには何もありませんが、何も表示されません。その下に、ボタンが入ったスライドショーのボックスがありますが、写真はありません。

何がうまくいかなかったのか、それとも何らかの理由で XPages で機能しないのか、考えはありますか?

前もって感謝します。

4

1 に答える 1

0

それはに関連している可能性があります

<script type="dojo/connect">

部。dojo/connect イベントに関して、ブラウザー固有の問題がいくつかありました。代わりに、次の CS JavaScript を XPage/カスタム コントロールの onClientLoad に追加してみてください。

dojo.addOnLoad(function() {
  var itemRequest = { query: {}, count: 20 };
  var itemNameMap = { imageThumbAttr: "label", imageLargeAttr: "name" };
  dijit.byId('gallery1').setDataStore(imageItemStore, itemRequest, itemNameMap);
});
于 2012-04-20T07:44:38.833 に答える