我找到了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[]
或类似的代码中提供代码背后的图像源。图像将保存在磁盘上,我将从数据库中获取它们的路径。
有办法做到这一点吗?还是有更好的方法来解决这个问题?
由于
答案 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 %>
会被您的属性值替换,并且您最终会使用该数组。