2

jquery でスライドショーの素晴らしい例を見つけましたが、画像パスは次のように指定されています。

  <script type="text/javascript">
        $(function () {
            $('#kenburns').kenburns({
                images: ['http://farm5.static.flickr.com/4088/4967743590_8e1cbba701_b.jpg',  
                         'http://farm5.static.flickr.com/4130/4967739638_edfdb0a52b_b.jpg',  
                         'http://farm5.static.flickr.com/4126/4967708868_5625c200bd_b.jpg'
                        ],
                        frames_per_second: 30,
                        display_time: 7000  
                            ........
                                    });
                      });

    </script>

js ファイルでは、次のようになります。

    (function($){

    $.fn.kenburns = function(options) {
        ..................

        var images = [];
        ...................
     }});

だから私が欲しいのは、コードビハインドからの画像ソースを、List<string>またはstring[]同様のもので提供することです。画像はディスクに保存され、データベースから画像へのパスを取得します。

これを行う方法はありますか?または、これを解決するためのより良いアプローチはありますか?

ありがとう

4

1 に答える 1

1

次のように、C#文字列配列をJavaScript配列宣言に変換できます。

string[] myImageUrls = new string[] { "image1.jpg, image2.jpg" };
var serializer = new JavaScriptSerializer();
string myJavaScriptArray = serializer.Serialize(myImageUrls);

この例はあなたに文字列を与えます["image1.jpg","image2.jpg"]

これで、最初のJavaScriptブロックがASPXページでインラインになっている場合、この文字列をコードビハインドのプロパティに入れることができます。

protected string ImageUrlArray {
    get {
        return new JavaScriptSerializer()
            .Serialize(getImageUrlArrayFromDatabase());
    }
}

次に、次のようにスクリプトブロックに「含めます」。

<script type="text/javascript">
    $(function () {
        $('#kenburns').kenburns({
            images: <%= ImageUrlArray %>,
            frames_per_second: 30,
            display_time: 7000  
            ........
        });
    });
</script>

<%= ImageUrlArray %>プロパティの値に置き換えられ、配列が配置されます。

于 2012-12-05T09:02:15.420 に答える