Attributes.add和onmouseover

问题描述:

我有一个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? –

你的意思是有双引号吗?

试试这个:

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

注意我用了一个单引号是合法的HTML。

或尝试逃避它:

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

VB使用“”作为双引号转义 –

用单引号尝试,如在:

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')' –