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