1

我正在处理 asp.net 网页,我正在使用花式框显示你的视频。

到目前为止它工作正常,我还需要对 asp.net 文件进行 ajax 调用,updateHits.aspx?VideoID=xyzxvtmiw 以便我可以更新数据库中该视频的点击次数/观看次数(当有人点击缩略图时)。当用户单击 video.aspx 页面上视频的图像缩略图时,我不太确定如何进行此调用。

以下是我的脚本的一部分

<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' }
                });
                return false;
            });
        });

    }
</script>


            <asp:Repeater ID="rptvideos" runat="server" >
                <ItemTemplate>
                <div class="single-video-wrapper">
                    <asp:HyperLink ID="hylnkvideo" CssClass="youtube"  NavigateUrl='<%# getVideoURL(Eval("VideoID"), Eval("VideoYoutubeID")) %>' runat="server">
                        <div class="video-image-wrapper">
                            <asp:Image ID="imgvideo" ImageUrl='<%# getVideoImagePath(Eval("VideoYoutubeID"), Eval("VideoYoutubeIcon")) %>'   AlternateText='<%# getVideoTitleDesc(Eval("VideoDate"),Eval("VideoTitle"),Eval("VideoDesc")) %>'  runat="server" CssClass="video-thumbnail" />
                        </div>
                       <div class="video-name">
                            <asp:Label ID="lblvideoName" CssClass="video-name-lbl" runat="server" Text='<%#Eval("VideoTitle") %>'></asp:Label>
                       </div>
                       <div class="video-issue">
                            <asp:Label ID="lblVideoIssue" CssClass="video-issue-lbl" runat="server" Text='<%#getIssuCode(Eval("IssueCode")) %>'></asp:Label>
                       </div>
                    </asp:HyperLink>
                </div>
                </ItemTemplate>
            </asp:Repeater>

根据上面的代码,我正在重新初始化花式框,因为我有 updatePanel。

但我不确定我应该如何进行 ajax 调用, updateHits.aspx?VideoID=xyzxvtmiw以便我可以更新数据库。

4

1 回答 1

2

您可以将 AJAX 调用添加到点击事件:

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({
                //...
            });
            // your Ajax call here
            $.ajax({
                type: "POST",
                url: "updateHits.aspx?VideoID=xyzxvtmiw"
            });
            return false;
         });
    });
}

如果您希望将 ajax 调用与 fancybox init 分开,您可以在页面的其他位置添加另一个点击处理程序:

$(".youtube").click(function () {
    // your Ajax call here
    $.ajax({
        type: "POST",
        url: "updateHits.aspx?VideoID=xyzxvtmiw"
    });
}
于 2013-03-04T11:38:33.193 回答