我试过一个例子: this example
它的工作正常,但当我试图动态绑定它不起作用。请任何人都可以帮忙。
请找到以下代码:
下拉代码:
function FillDetail(id) {
$.ajax({
dataType: "json",
type: "POST",
url: '../Getdata',
data: 'id=' + id,
async: true,
success: function (data) {
$.each(data, function (i, item) {
alert('[' + item.CooperativeUserID + ']');
$('#lstdrpdwn').selectpicker('val', '[' + item.CooperativeUserID + ']'); //.val(item.CooperativeUserID);
$('#lstdrpdwn').selectpicker('refresh');
})
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
}
** Jquery:**
//$('#lstdrpdwn').selectpicker('refresh');
此外,我还尝试删除$('.selectpicker').selectpicker('refresh');
行。
并且aslo试图刷新selectpicker
function filldropdown() {
return $.ajax({
dataType: "json",
type: "POST",
url: '../Getdropdown',
data: 'id=0',
async: true,
success: function (data) {
$("#lstdrpdwn").html("");
$.each(data, function (key, val) {
$("#lstdrpdwn").append($("<option></option>").val(val.ID).html(val.Name));
});
$('#lstdrpdwn').selectpicker('refresh');
$('#lstdrpdwn').selectpicker('val', [2,5]);
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
}
它不起作用。
当我使用静态ID绑定值时,它在填充下拉列表时工作正常。
If an origin server wishes to force a cache to validate every
request, it can assign an explicit expiration time in the past to
indicate that the response is already stale.
答案 0 :(得分:1)
所以你必须给selectpicker一个数组来设置vals。 你是这样做的:
$.each(data, function (i, item) {
alert('[' + item.CooperativeUserID + ']');
$('#lstdrpdwn').selectpicker('val', '[' + item.CooperativeUserID + ']'); //.val(item.CooperativeUserID);
$('#lstdrpdwn').selectpicker('refresh');
})
正确的方式就像是:
var selected = data.map(function(e) {
return e.CooperativeUserID ;
});
$('#lstdrpdwn').selectpicker('val', selected);
使用$ .each:
var selected = [];
$.each(data, function (i, item) {
selected.push(item.CooperativeUserID);
});
$('#lstdrpdwn').selectpicker('val', selected);
你可以在这里找到一个例子:https://jsfiddle.net/segito/0u3nw1wc/
答案 1 :(得分:0)
感谢您的回复
我只是这样试过,它对我有用。
<强> JQUERY 强>
function FillDetail(id) {
$.ajax({
dataType: "json",
type: "POST",
url: '../Getdata',
data: 'id=' + id,
async: true,
success: function (data) {
$.each(data, function (i, item) {
var array = item.CooperativeUserID.split(',');
$('#lstdrpdwn').selectpicker('val', array);
})
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
}