我有一个列表框:
<asp:ListBox ID="ListBoxCodeProduct"
[...]
CssClass="SelectProducts select2-selected-options"
SelectionMode="Multiple">
</asp:ListBox>
我的select2使用ajax在ListBox中获取数据。
$(document).ready(function () {
$('.SelectProducts').select2({
placeholder: 'Choose product(s)',
allowClear: true,
ajax: {
url: "../Product.ashx",
dataType: 'json',
delay: 250,
data: function (params) {
[...]
};
return params;
},
processResults: function (data, params) {
[...]
};
},
cache: false
},
minimumInputLength: 0
});
});
我想要一个选项&#34;所有产品&#34; (在我的列表框中有一个例子复选框)以允许所有选项。
我找到了很多解决方案,但总是使用html中的数据(使用&#34; li&#34;和&#34;选项&#34;但从不使用ajax) 我想做这样的事情:
$("#CheckBoxAllProducts").click(function(){
if($("#CheckBoxAllProducts").is(':checked') ){
$(".SelectProducts'> li").prop("selected","selected");
$(".SelectProducts'").trigger("change");
}else{
$(".SelectProducts'> li").removeAttr("selected");
$(".SelectProducts'").trigger("change");
}
});
我是怎么做到的? 提前致谢
答案 0 :(得分:0)
感谢您的回答,我已经看到了这个话题。但是,它是不同的,因为我的DOM不包含我的结果列表。
但是有人帮助我: (我们在点击checkBox时开始声明我的产品列表)
$("#CheckBoxAllProducts").click(function (e) {
$.ajax({
url: "../Product.ashx",
type: 'POST',
data: { taillePage: 100 },
dataType: 'json',
cache: false
}).done(function (data) {
var select2 = $('.SelectProducts'),
selectedValues = [];
select2.empty();
$.each(data.items, function (i, item) {
select2.append($('<option>', {
value: item.id,
text: item.text
}));
selectedValues.push(item.id);
});
select2.val(selectedValues).trigger('change');
});
});
它现在正在工作! :) 谢谢