我有一个带有gridview的页面。 在列上显示播放图标取决于数据库中是否有视频网址。这部分是:
<asp:TemplateField HeaderText="" ItemStyle-CssClass="video" >
<ItemTemplate>
<asp:LinkButton ID="lbtVideoUrl" runat="server" OnClientClick="javascript:clicker('http://www.youtube.com/watch?v=qySK7GWFEAg')" ><img class='<%# Eval("Class", "{0}") %>' src='<%# Eval("VideoImage", "{0}") %>' alt="Video" title='<%# Eval("ToolTip", "{0}") %>' /></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
应该处理此问题的javascript是:
function clicker(theUrl) {
var thediv = document.getElementById('displaybox');
if (thediv.style.display == "none") {
thediv.style.display = "";
thediv.innerHTML = "<table width='100%' height='100%'><tr><td align='center' valign='middle' width='100%' height='100%'><object width='640' height='360'><param name='movie' value='" + theUrl + "'></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src='" + theUrl + "' type='application/x-shockwave-flash' width='640' height='360' allowscriptaccess='always' allowfullscreen='true'></embed></object><br><br><a href='#' onclick='return clicker();'>CLOSE WINDOW</a></td></tr></table>";
} else {
thediv.style.display = "none";
thediv.innerHTML = '';
}
return false;
}
然而,当我点击按钮时,我会看到灰色叠加层和视频字段,但在显示任何内容之前,再次关闭叠加层。我必须遗漏一些东西,但不知道是什么......
还有一条信息(不知道是否相关):我必须在后面的代码中添加以下代码才能使其“正常工作”:
protected void gv_SelectedIndexChanged(object sender, EventArgs e)
{
}
PS下一步是从数据库获取网址,因此我可以添加不同链接到不同的图标。