グリッドビューのあるページがあります。データベースにビデオ URL があるかどうかに応じて、列の 1 つに再生アイコンが表示されます。この部分は次のとおりです。
<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;
}
ただし、ボタンをクリックすると灰色のオーバーレイとビデオ フィールドが表示されますが、何かが表示される前にオーバーレイが再び閉じられます。私は何かが欠けているに違いありませんが、何が手がかりがありません....
もう1つの情報(関連性があるかどうかはわかりません):これまでのところ「機能」させるには、コードビハインドに次を追加する必要がありました:
protected void gv_SelectedIndexChanged(object sender, EventArgs e)
{
}
PS 次のステップは、データベースから URL を取得することです。そのため、さまざまなリンクをさまざまなアイコンに追加できます。