表示用の画像を動的に生成した後に yoxview を表示する方法を見つけようとしています。ユーザーが製品をクリックしたときに製品を表示する GridView があり、yoxview に表示するスクリプトを動的に生成し、スクリプトを登録します。 onLoad イベント。ページがロードされた後、yoxview は私が望むものではない div タブ内に表示されます。ページのロードが完了した後に yoxview で開く必要があります。
<script type="text/javascript">
jQuery(document).ready(function () {
//jQuery('a[rel*=facebox]').facebox({
// loading_image: '/images/fb/loading.gif',
// close_image: '/images/fb/closelabel.gif'
//});
jQuery(".thumbnails").yoxview({
renderInfoPin: false
});
});
</script>
<div id="yoxview" class="thumbnails">
<div class="div_separator_10">
</div>
<asp:Image Visible="false" CssClass="product_thumbnail" ImageUrl="~/images/products/nophoto.gif"
ID="imgEmpty" runat="server" ImageAlign="AbsMiddle" />
<div class='captionwrapper'>
<asp:PlaceHolder ID="phImages" runat="server" ClientIDMode="Static"></asp:PlaceHolder>
<div class='captiondescription'>
<div class='captiondescription_content'>
<asp:Literal ID="lblImageInfo" runat="server"></asp:Literal>
</div>
</div>
</div>
</div>
protected void LoadMultipleImages(string productName, List<string> images)
{
var builder = new StringBuilder();
var builder2 = new StringBuilder();
builder.Append("jQuery(document).ready(function(){jQuery('#yoxview').yoxview({renderInfoPin: false, images: [");
if (images.Count > 0)
{
lblImageInfo.Text = string.Format("{0} more image(s) available", images.Count);
}
foreach (var image in images)
{
builder.AppendFormat("{{ media: {{ src: '{0}', title: '{1}' }}}},", image, productName);
}
builder.Append("]});});");
//builder.Append("jQuery('#yoxview').yoxview('open');");
//builder.Append("jQuery('#yoxview').click();");
//builder.Append("document.getElementById('phImages').click();");
//builder2.Append("document.getElementById('lnkProductImage').click();");
//builder2.Append("jQuery('#lnkProductImage').click(function(event){return;});");
ScriptManager.RegisterStartupScript(Page, typeof(string), "onLoadCall", builder.ToString(), true);
//ScriptManager.RegisterStartupScript(Page, typeof(string), "onLoadCall", builder2.ToString(), true);
}