0

ASP.NET コントロールを使用する必要があるデータベースのデータを使用して、編集可能なフォームを作成しています。これを HTML で動作させましたが、.NET 部分を追加したときに行き詰まりました。

状況は次のとおりです。ページにラベルが表示され、その下に編集ボタンがあります。編集ボタンを押すと、ラベルはデータベースからのデータを含む .NET ドロップダウン リストになります。ユーザーが [保存] をクリックすると、ドロップダウン リストは、選択した値を表示するラベルに戻ります。

私の問題は、編集ボタンをクリックしても、ドロップダウン リストが表示されないことです。

コードは次のとおりです。

.ASCX

<li>
    Campus
    <br />
    <span class="datainfoDropdown">
        <strong>
            <asp:Literal ID="CampusAttended" runat="server" ClientIDMode="Static"/>
        </strong>
        <asp:DropDownList ID="ProfileCampusDropDown" runat="server" ClientIDMode="Static" style="display:none;" ></asp:DropDownList>
    </span>
    <a href="#" class="editlinkDropdown">Edit Info</a>
    <a class="savebtnDropdown">Save</a>
</li>

Javascript

$(".editlinkDropdown").on("click", function (e) {
    e.preventDefault();
    var datasets = $(this).prevAll(".datainfoDropdown");
    var savebtn = $(this).next(".savebtnDropdown");
    datasets.each(function () {
        var theid = $(this).attr("id");
        var currval = $(this).text();
        var dropDown = $('#ProfileCampusDropDown').html();
        $('.datainfoDropdown').html(dropDown);
    });

    $(this).css("display", "none");
    savebtn.css("display", "block");
});

$(".savebtnDropdown").on("click", function (e) {
    e.preventDefault();
    var elink = $(this).prev(".editlinkDropdown");
    var datasets = $(this).prevAll(".datainfoDropdown");
    datasets.each(function () {
        var newid = $(this).attr("id");
        var einput = $("#" + newid + "-form");
        var newval = $('#ProfileCampusDropDown :selected').text();
        //einput.remove();
        $(this).html('<strong>' + newval + '</strong>');
    });

    $(this).css("display", "none");
    elink.css("display", "block");
});

編集ボタンにドロップダウン リストを表示するにはどうすればよいですか?

4

2 に答える 2

1

コードを見ると、達成したいことが明確ではありません。ID と「-form」の要点がわからないことを告白しなければなりません。私は何かを逃したに違いない。

とにかく、これはあなたが説明したことを行うべきだと思います(提供されProfileCampusDropDown、でsavebtnDropdown始まりますdisplay:none;

    $(".editlinkDropdown").on("click", function (e) {
        e.preventDefault();
        $(this).prevAll(".datainfoDropdown").find("strong").hide();
        $('#ProfileCampusDropDown').show();
        $(this).hide();
        $(this).next(".savebtnDropdown").show();
    });

$(".savebtnDropdown").on("click", function (e) {
    e.preventDefault();
    var strong = $(this).prevAll(".datainfoDropdown").find("strong");
    strong.html($('#ProfileCampusDropDown :selected').text());
    strong.show();
    $('#ProfileCampusDropDown').hide();

    $(this).hide();
    $(this).prev(".editlinkDropdown").show();
});

これが役立つことを願っています

于 2013-03-01T15:22:22.337 に答える
0

ASP.NET のどこにこれがあるかわかりませんが、asp.net コントロールに設定した ID がサーバーによって変更されている可能性が高いです。

この場合、コントロールの CssClass 属性を設定し、$(".class")jQuery のセレクターを使用します。

于 2013-03-01T15:07:20.487 に答える