【发布时间】:2017-02-14 09:40:12
【问题描述】:
我有 2 个名为 lstLeft and listRowField 的 Asp ListBox。当用户从 1stLeft 中选择项目并单击按钮时,它将移动到另一个列表框 (listRowField) 但有限制 (某些项目不应移动) 。
到目前为止,我已经做到了,代码运行良好。当用户选择受限项目并点击按钮时,被选中的项目应该再次被取消选择
1stLeft的 TotalQuantity 不允许移动。一旦它显示警报消息,来自1stLeft的选择颜色应该会被移除。
我试过这段代码,但不起作用
$('#rightRow').click(function () {
var options = $("[id*=lstLeft] option:selected");
for (var i = 0; i < options.length; i++) {
if ($(options[i]).val() === 'TotalQuantity' || $(options[i]).val() === 'ExtendedPrice' || $(options[i]).val() === 'ExtendedCost' || $(options[i]).val() === 'Profit') {
alert($(options[i]).val() + " is not allowed to Data Field");
//I tried these TWO CODES. But it doesn't work.
//$('.multiselectOptions:selected', this).remove();
$("#lstLeft option[value=" + $(options[i]).val() + "]").attr("selected", false);
}
else {
var opt = $(options[i]).clone();
$(options[i]).remove();
$("[id*=listRowField]").append(opt);
}
}
}
更新
//Multiselection
$('.multiselectOptions').mousedown(function (e) {
e.preventDefault();
$(this).prop('selected', $(this).prop('selected') ? false : true);
return false;
});
<asp:ListBox ID="lstLeft" class="form-control" runat="server" SelectionMode="Multiple" Height="260px" onclick="ListBoxClient_SelectionChanged(this, event);">
<asp:ListItem class="multiselectOptions" Value="StoreID">StoreID</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="ItemLookupCode">ItemLookupCode</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="ExtendedDescription">ExtendedDescription</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="SubDescription1">SubDescription1</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="DepartmentName">DepartmentName</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="CategoryName">CategoryName</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="SupplierCode">SupplierCode</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="SupplierName">SupplierName</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="TotalQuantity">TotalQuantity</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="ExtendedPrice">ExtendedPrice</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="ExtendedCost">ExtendedCost</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="Profit">Profit</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="UnitOfMeasure">UnitOfMeasure</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="CustomerAccountNumber">CustomerAccountNumber</asp:ListItem>
<asp:ListItem class="multiselectOptions" Value="CustomerName">CustomerName</asp:ListItem>
</asp:ListBox>
此代码用于多选。取消选择是不是让我错了?
谢谢
【问题讨论】:
-
你是否在 :hover 时添加一些颜色?
-
@SilentCoder 不
-
那它是怎么上色的?
-
@SilentCoder 我没有设置任何颜色。当用户选择项目时,将设置该颜色。
标签: javascript jquery asp.net listbox