在UserControl中使用FancyBox时不会触发

时间:2013-03-05 05:49:59

标签: asp.net user-controls fancybox webforms site.master

我有ASP.Net主页设计&必须使用Fancybox将视频显示为模态,当我在ContenPage&上显示视频时将所有相关脚本放在该页面的FB上,然后它可以正常工作,没有任何问题。但我还需要将Top 10视频作为用户控件显示在某些页面上。我所做的是创建一个用户控件&将所有相关脚本放在该用户控件中,除了我在masterpage&中使用的主jQuery。下载为CDE。

在这种情况下,fancybox不会触发。

如果我在所有内容页面上黑色的花哨框相关脚本,我不想这样做。

我希望脚本位于userControl

我已经为用户控制放置了示例代码&主页面如下。

USER CONTROL

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ucMostPopular.ascx.cs" Inherits="ucMostPopular"  %>

    <script src="<%= Helper.ResolveUrl("~/scripts/fancybox/jquery.fancybox-1.3.4.js") %>" type="text/javascript"></script>
    <link href="<%= Helper.ResolveUrl("~/styles/english-jquery.fancybox-1.3.4.css") %>" rel="stylesheet" type="text/css" />
  <script type="text/javascript">

   //Code to Reinitialize Fancybox script when using update panel START
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_initializeRequest(InitializeRequest);
    prm.add_endRequest(EndRequest);
    function InitializeRequest(sender, args) { }
    function EndRequest(sender, args) { InitMyFancyBox(); }
    $(document).ready(function () {
        InitMyFancyBox();
    });

    function InitMyFancyBox() {
        $(document).ready(function () {
            $(".youtube").click(function () {
                // first, get the value from the alt attribute
                var newTitle = $(this).find("img").attr("alt"); // Get alt from image
                $.fancybox({
                    'padding': 0,
                    'autoScale': false,
                    'transitionIn': 'none',
                    'transitionOut': 'none',
                    //'title': this.title, // we will replace this line
                    'title': newTitle,  //<--- this will do the trick
                    'width': 680,
                    'height': 495,
                    'href': this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
                    'type': 'swf',
                    'swf': { 'wmode': 'transparent', 'allowfullscreen': 'true' }

                });
              // alert(this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'));
                $.ajax({
                    type: "POST",
                    url: "UpdateVideoViews.aspx?youtubeVideoID="+this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
                });
                return false;
            });
        });

    }

  </script>  
        <!-- Videos  -->  
        <div id="Videos" class="tab_text">  
            <div id="popular-videos-wrapper">
                <asp:Repeater ID="rptPopularVideos" runat="server" EnableViewState="False" >
                    <ItemTemplate>
                            <div class="popular-article-title">
                                 <asp:Label ID="lblCounter" CssClass="lblCounter" runat="server" Text='<%# Container.ItemIndex + 1 %>'  > </asp:Label> 
                                 <asp:HyperLink ID="hylnkArticle" CssClass="popular-youtube-links" ToolTip ='<%# Eval("VideoTitle")%>' NavigateUrl='<%# generateVideoURL(Eval("VideoYoutubeID")) %>' runat="server" BorderWidth="0">
                                    <asp:Label ID="lblArticleTitle" Text='<%# getVideoTitle(Eval("VideoTitle"))%>' runat="server" ></asp:Label>
                                 </asp:HyperLink>
                              </div>
                    </ItemTemplate>
                </asp:Repeater>
            </div>
         </div>  
         <!-- Videos  --> 

MASTER PAGE

<%@ Master Language="C#"  AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="SiteMasterPage"  %>
<%@ Register Src="~/en/UserControls/ucLiquidCarousel.ascx" TagName="ucLiquidCarousel"  TagPrefix="uc"%>
<%@ Register Src="~/en/UserControls/ucNewsTicker.ascx" TagName="ucTicker"  TagPrefix="uc"%>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title></title>
<asp:Literal ID="litCtrMetaForSM" runat="server"></asp:Literal>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="shortcut icon" href="http://www.alshindagah.com/favicon.ico">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
<link href="../styles/english_css.css" rel="stylesheet" type="text/css" />
<link href="../styles/horizontal-menu-english.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder>
<script type="text/javascript">
.....
//Other scripts
.....
</script>

我不确定为什么这不起作用我已经在masterpage上移动了与fancy box相关的脚本然后它只适用于默认页面&amp;在其他页面上失败。

我还使用了无效的ResolveURL(...)

我没有收到有关脚本的任何错误。

我会很感激这方面的帮助,以便我的fancybox可以通过将所有与fancybox相关的脚本放在usercontrol自己的

来工作

0 个答案:

没有答案