我說的是這樣的網站: http://www.ernesthemingwaycollection.com什麼是在ASP.NET中顯示隨機圖像的最佳方式?
它有一個靜態牆紙和一組圖片,從頁面切換到頁面,我想實現從一組顯示隨機圖像的類似的方式使用ASP.NET的圖像。
編輯:我想要的圖像保持不變的會話,並從會話切換到另一個。
我說的是這樣的網站: http://www.ernesthemingwaycollection.com什麼是在ASP.NET中顯示隨機圖像的最佳方式?
它有一個靜態牆紙和一組圖片,從頁面切換到頁面,我想實現從一組顯示隨機圖像的類似的方式使用ASP.NET的圖像。
編輯:我想要的圖像保持不變的會話,並從會話切換到另一個。
您提到的網站沒有使用隨機的圖像集。它們被編碼到aspx頁面的html一側。
您可以在頁面上放置一個asp圖像控件。然後在頁面的Page_Load函數中將圖像設置爲隨機圖片。
protected void Page_Load(object sender, EventArgs e)
{
this.Image1.ImageUrl = "~/images/random3.jpg";
}
在存儲圖像集數據的位置有不同的選項。您可以使用數據庫並將這些URL存儲在一個表中。這將允許使用SQL中內置的Random函數。或者,您可以將XML文件保存到服務器,然後加載該文件,然後使用隨機.Net類來選擇一個xml節點。
就我個人而言,我會推薦數據庫解決方案。
編輯:因爲服務器會話20分鐘後被破壞,你可能想看看使用cookie,所以你可以看到他們看到的最後一個隨機圖像。
如果你只是想旋轉一定數量的圖像,你可以使用ASP.NET AdRotator control(最後,它的用處!)。
如果你想做一些更有趣的事情,考慮使用jQuery幻燈片如jQuery Cycle Plugin。還有一個slideshow control in the AjaxControlToolkit,很容易整合。
string imageDir = "/images/banner/";
public static string chooseImage(string imageDir)
{
string[] dirs = Directory.GetFiles(HttpContext.Current.Server.MapPath("~/images/" + imageDir + "/"), "*.*");
Random RandString = new Random();
string fileFullPath = dirs[RandString.Next(0, dirs.Length)];
// Do not show Thumbs.db ---
string fileName = string.Empty;
do
{
fileName = System.IO.Path.GetFileName(fileFullPath);
} while (fileName.Contains(".db"));
string imgPath = "/images/" + imageDir + "/" + fileName;
return imgPath;
}
private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}