2012-12-19 70 views
0

我有一個databound gridview,用來顯示從服務器獲取的圖片。當我將鼠標放在放大圖像的圖像之一上時,我試圖設置它來創建彈出窗口。我曾經遇到過一個問題,但,當談到加入屬性數據綁定row.I目前擁有的代碼Attributes.add和onmouseover

e.Row.Cells(2).Attributes.Add("onmouseover", "flyoutimg.ImageUrl=""" + imgstr + """;") 

然而,這行代碼導致我在有問題的imgstr(其中包含服務器上圖像的url)不會傳遞到頁面的javascript/aspx中。當我啓動頁面時,我可以嘗試將鼠標放在一些東西上,但它簡單地不起作用。

我試圖把flyout.ImageUrl放入它自己的字符串中,並將它傳遞給屬性,但這也不起作用。我能找到的唯一研究來自兩年前,說明Attributes.Add編碼撇號而不是引號。

有什麼建議嗎?

imgstr = dsMyName.Tables(0).Rows(0).Item("Photo").ToString 

我從服務器拉imgstr並做一個.ToString,我認爲這是多餘的。

+0

我假設其餘的JS代碼傳遞給客戶端?您還如何填充imgstr? –

+0

是的,其餘的JS代碼被傳遞。我通過從數據庫中提取URL來創建imgstr。我添加上面的代碼。 – user1816892

+0

你有沒有嘗試過創建字符串之前的事情?說字符串flyoutString =「」flyoutimg.ImageUrl =「+ imgstr +」;「;或沿着這些行的東西,然後注入flyoutString到Add()?也檢查,看看是否實際返回一個好字符串imgstr? –

回答

0

你的意思是有雙引號嗎?

試試這個:

e.Row.Cells(2).Attributes.Add("onmouseover", "flyoutimg.ImageUrl='" + imgstr + " ';") 

注意我用了一個單引號是合法的HTML。

或嘗試逃避它:

e.Row.Cells(2).Attributes.Add("onmouseover", "flyoutimg.ImageUrl=\"" + imgstr + "\";") 
+0

VB使用「」作爲雙引號轉義 –

1

用單引號嘗試,如在:

e.Row.Cells(2).Attributes.Add("onmouseover", "flyoutimg.ImageUrl='" + imgstr + "';") 

這是因爲我認爲.NET做什麼使這個:

onmouseover="flyoutimg.ImageUrl='XYZ'" 

如果你有雙引號,它會變得混亂,認爲它是在屬性的末尾,並可能截斷t他很重視。

+0

當我這樣做時,當鼠標懸停在單元格上時,出現錯誤「flyoutimg is undefined」,它生成代碼onmouseover =「flyoutimg.ImageUrl = '〜/ Images/Handsets/Alcatel_308A_- _Black.jpg ';「 – user1816892

+0

如果這是錯誤,我不確定你爲什麼沒有得到它。如果這是一個元素,你可能想嘗試'document.getElementById('flyoutimg')' –