2012-12-05 67 views
2

我已經找到了slideshow in jquery的一個很好的例子,但成像路徑給出這樣的:綁定集合從代碼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

你可以把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 %>獲取與你的財產值替換,並且最終在地方的陣列。

+0

它完美的工作。非常感謝你。我不知道JavaScriptSerializer的一部分:)。謝謝 – bokkie

相關問題