如何在确认框的取消事件后强制 asp.net 列表框保留选定的值?
Posted
技术标签:
【中文标题】如何在确认框的取消事件后强制 asp.net 列表框保留选定的值?【英文标题】:how to force asp.net listbox to hold the selected values after confirmation box's cancel event? 【发布时间】:2019-12-27 15:58:46 【问题描述】:我有下面的 asp.net 列表框,它已经用 sumoselect 装饰。
如果用户取消选择该项目(未选择任何项目),则在下拉列表中选择一个项目后,将提示用户一个 javascript 确认框,如果用户单击取消按钮,则下拉列表将继续保留值。 下面是我的代码。
<td class="ievent" style="width:22%; padding-bottom:10px; padding-right:30px;padding-left:10px;">
<asp:ListBox ID="ListBoxSol" runat="server" SelectionMode="Multiple" CssClass="textbox" Height="22px" Font-Size="Small" Width="230px">
</asp:ListBox>
</td>
if (lastselectedItemIndex == -1)
var dropselvalue = sessionStorage.getItem("items");
var ans = confirm("If all Internal Solution are de-selected than Solution Revenue value will be saved as 0. Do you want to de-select all?");
if (ans == true)
$('#LabelSolRev').hide();
$('#TextBoxSolRev').hide();
else
event.preventDefault();
//$("#ListBoxSol option").find('AI Solutions').attr("selected", true);
//$('#ListBoxSol option').(":checked");
$("#ListBoxSol option").each(function ()
if ($(this).html() == "AI Solutions")
$(this).prop("selected", true);
//$(this).checked(true);
$(this).removeClass("opt");
$(this).addClass("selected opt");
$(this).trigger("click");
return false;
);
但在我的情况下,使用给定的代码取消选择后,多选下拉菜单无法保存值。谁能建议如何处理这种情况?
【问题讨论】:
【参考方案1】:如果我对您的问题的理解正确,您想从asp:ListBox
控件中选择多个选项,并在取消选择所有要保留其记录的选项后,以便在某些情况下重新选择它们。
首先,asp:ListBox
控件不是这样选择的:$("#ListBoxSol option")
。
由于此控件在服务器上运行,因此会在其前面添加一些附加信息。这将导致其 id 变为:#MainContent_ListBoxSol
。
要选择asp:ListBox
控件,您需要将$("#ListBoxSol option")
替换为$("#<%= ListBoxSol.ClientID %> option")
。您可以阅读更多关于在 jQuery here 中选择 asp.net 控件的信息。
其次,要保留选定的值,您可以将它们存储在一个数组中,比如“值”。
var values = [];
$("#<%= ListBoxSol.ClientID %> option:selected").each(function (i, option)
values[i] = option;
);
以后可以遍历数组,重新选择选项。
$.each(values, function (index, option)
$("#<%= ListBoxSol.ClientID %> option[value='" + option.value + "']").prop('selected', true);
);
希望对你有帮助。
【讨论】:
以上是关于如何在确认框的取消事件后强制 asp.net 列表框保留选定的值?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC3 - 处理来自强类型列表框的多个值的问题
asp.net 如何在显示模态框的同时触发OnClick事件