我正在使用数据库中的数据构建可编辑的表单,这需要使用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");
});
如何让我的编辑按钮显示下拉列表?
答案 0 :(得分:1)
查看您的代码,您想要实现的目标并不是很清楚。 我必须承认,我没有看到ids和“-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();
});
希望这会有所帮助
答案 1 :(得分:0)
我不知道你的ASP.NET中有哪些,但很有可能服务器正在更改你为asp.net控件设置的ID。
如果是这种情况,请设置控件的CssClass属性并使用jQuery的$(".class")
选择器。