1

私はあなたに見せているasp.netWebページに取り組んでいます-fancy-boxを使用したチューブビデオ。

updateHits.aspx?VideoID=xyzxvtmiw これまでのところ正常に機能しているので、データベース内のこのビデオのヒット/ビューを更新できるように(誰かがサムネイルをクリックしたときに)、asp.netファイルに対してajax呼び出しを行う必要もあります。ユーザーが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があるのでfancy-boxを再初期化しています。

updateHits.aspx?VideoID=xyzxvtmiwしかし、データベースを更新するためにajax呼び出しを行う方法がわかりません 。

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呼び出しをfancyboxinitとは別にしたい場合は、ページの別の場所に別のクリックハンドラーを追加するだけです。

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