从后面的代码将集合绑定到jquery变量

时间:2012-12-05 08:47:40

标签: c# jquery asp.net

我找到了slideshow in 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[]或类似的代码中提供代码背后的图像源。图像将保存在磁盘上,我将从数据库中获取它们的路径。

有办法做到这一点吗?还是有更好的方法来解决这个问题?

由于

1 个答案:

答案 0 :(得分: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());
    }
}

然后&#34;包括&#34;它在你的脚本块中如下:

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

<%= ImageUrlArray %>会被您的属性值替换,并且您最终会使用该数组。