2012-11-24 56 views
0

我的主頁正在顯示圖像使用jQuery的幻燈片,所有這些圖像在運行時從MySQL中檢索。我創建了9個圖像內部由jquery和我從codebehind.please看到圖像url的值,請參閱下面的代碼,如果數據庫包含少於9個圖像,則應該隱藏null圖像。我可以這樣做嗎?創建動態圖像對應的可用數據在asp.net

<a href="#"> 

DataTable dt = Db.ids("home_table"); 
Image1.ImageUrl = "~/Handler1.ashx?id=" + Convert.ToInt16(dt.Rows[0]["id"].ToString()); 


Image2.ImageUrl = "~/Handler1.ashx?id=" + Convert.ToInt16(dt.Rows[1]["id"].ToString()); 

這種方法是遵守所有9張圖片...

+0

只是一個評論。我不明白你爲什麼要將一個字符串轉換成一個'Int16'然後回到一個字符串。只需將數據庫的'ToString()'值直接連接到URL部分即可。 – musefan

+0

是的..你是正確的 – suhail

回答

2

由於您直接訪問不存在的行,因此會出現錯誤。您需要計算DT中的行數。

numberOfRows = dt.Rows.Count 

if (numberOfRows >= 2) 
{ 
    Image2.ImageUrl = "~/Handler1.ashx?id=" + ... } 

if (numberOfRows >= 3) 
{ 
    Image3.ImageUrl = "~/Handler1.ashx?id=" + .... } 

+0

yea ..但現在我想添加50個圖像,有些時間數據庫可能包含少於50個圖像,那麼該怎麼辦? – suhail

+0

這是一個不同的問題。所以你真正的問題是你想在你的DIV中有靈活的圖像數量?在這種情況下,你不能在頁面中硬編碼它們,就像你現在用image1,image2等做的那樣。你應該使用一箇中繼器或動態添加圖像控件到頁面 – Pleun

+0

yea ..我添加了動態圖像,但是,jquery沒有移動圖像如果動態創建圖像。所有圖像應該在一個div裏面,該div不應該被使用runat =「server」 – suhail

2

不能連接一個字符串和一個整數:

Image1.ImageUrl = "~/Handler1.ashx?id=" + Convert.ToInt16(dt.Rows[0]["id"]); 

轉換ToString()以解決:

Image1.ImageUrl = "~/Handler1.ashx?id=" + Convert.ToInt16(dt.Rows[0]["id"]).ToString(); 
0

兩種方法來解決了。

簡單的方法:

您可以創建圖片控件的靜態陣列(9個元件的陣列),那麼在從零到圖像-1的數的循環。然後,您可以取消引用該數組來更改網址。應該是這樣的(示例代碼,非編,可能有錯誤或錯別字)

申報:

Image imageArray[] = { Image1, Image2 ... , Image9}; 

在循環:

imageArray[index].ImageUrl = "~/Handler1.ashx?id=" + Convert.ToInt16(dt.Rows[index]["id"].ToString()); 

或硬盤方式:

動態添加圖像控件到頁面。

+0

我已經試過這個,但jquery沒有移動圖像時,我添加圖像codebehind,我必須能夠要在div中添加圖片而不使用「runtime = server」標籤,那麼只有jquery可以移動這些圖片 – suhail

+0

@suhail這是我告訴你如何去做的。 – Hogan