0

私はWebアプリケーションを作成しています。ページの 1 つは、サーバーの D: ドライブ内のすべてのフォルダー (そのすべてのサブフォルダーとファイルを含む) を再帰的にスキャンし、それをグリッドビューに配置します。このグリッドビューの列の 1 つに、ファイルの名前が含まれています。

私がやりたいことは、画像ツールチップを作成して、マウスを任意の画像ファイルに合わせると、画像を含むポップアップが表示されるようにすることです。

外部 js(jquery) ファイルのコードは次のとおりです。

this.screenshotPreview = function() {
    xOffset = 10;
    yOffset = 30;

    $(".lFilename").hover(function(e) {
        this.t = this.title;
        this.title = "";
        var c = (this.t != "") ? "<br/>" + this.t : "";
        var result = $("#grdlinkFilename").data("id");
        result = result.replace(/\\/g, "\\\\");
        result = result.replace(/D:\\/i, "http://192.000.0.00/Vdrive/");
        result = result.replace(/\\/g, "/");
        $("body").append("<p id='lFilename'><img src='" + result + "'/>" + c + "</p>");
        $("#lFilename").css("top", (e.pageY - xOffset) + "px")
                       .css("left", (e.pageX + yOffset) + "px")
                       .fadeIn("fast");
    },
    function() {
        this.title = this.t;
        $("#lFilename").remove();
    });
    $(".lFilename").mousemove(function(e) {
        $("#lFilename").css("top", (e.pageY - xOffset) + "px")
                       .css("left", (e.pageX + yOffset) + "px");
    });
};

$(document).ready(function(){
    screenshotPreview();
});

そして、これは私の<ASP:LinkButton/>中にあり<ASP:Gridiew/>ます。

<asp:LinkButton runat="server" CssClass="lFilename" ID="grdlinkFilename"
                Text='<%#Eval("FILENAME")%>'
                CommandArgument='<%#Eval("FILEPATH")%>'
                OnCommand="grdlinkFilename_click"
                data-id='<%#((string)Eval("FILEPATH")).Replace(@"\", @"\\")%>'>
</asp:LinkButton>

何らかの理由で、期待どおりに動作しない、または何も起こらない。

テストとしてjsファイルでこれを実行しようとしました:

this.screenshotPreview = function() {
    xOffset = 10;
    yOffset = 30;

    $(".lFilename").hover(function(e) {
        this.t = this.title;
        this.title = "";
        var c = (this.t != "") ? "<br/>" + this.t : "";
        var result = "D:\\sample pix\\img.jpg";
        result = result.replace(/D:\\/i, "http://192.000.0.00/VDrive/");
        result = result.replace(/\\/g, "/");
        $("body").append("<p id='lFilename'><img src='" + result + "'/>" + c + "</p>");
        $("#lFilename").css("top", (e.pageY - xOffset) + "px")
                       .css("left", (e.pageX + yOffset) + "px")
                       .fadeIn("fast");
    },
    function() {
        this.title = this.t;
        $("#lFilename").remove();
    });
    $(".lFilename").mousemove(function(e) {
        $("#lFilename").css("top", (e.pageY - xOffset) + "px")
                       .css("left", (e.pageX + yOffset) + "px");
    });
};

$(document).ready(function(){
    screenshotPreview();
});

これは適切に機能しますが、もちろん常に同じ画像が表示されます。

自分が正しいことをしているかどうかを知りたいです (うまくいかないので、いいえだと思います)。var result = $("#grdlinkFilename").data("id");jsファイル内のこのコードは値を返さないと感じています。

この種のシナリオでより多くの経験があり、asp.net、c#、javascript、または jquery の処理に関する幅広い知識を持っている人が他にたくさんいることを私は知っています。

これで私を助けてください。私はすでに調査を行い、さまざまなサイトの他の専門家に尋ねましたが、まだ誰も私を助けることができません.

4

1 に答える 1

1

JS ファイルで、次の行を置き換えてみてください。

var result = $("#grdlinkFilename").data("id");

これで:

var result = $('#' + e.target.id).data("id");
于 2013-05-29T08:29:54.697 に答える