c# - 从 ajax 检索数据时如何填充级联下拉列表?
问题描述
我试图开发一个 CRUD 网页,其中有两个级联下拉列表。当我输入要保存的数据时一切正常,但是当我检索数据时,第二个dropdownlist
仍然为空。
当代码完成但不起作用时,我尝试放置第二个下拉列表的人口。
HTML:
<div class="form-group">
<label class="control-label">Commessa:</label>
<select id="joborders" class="form-control"></select>
</div>
<div class="form-group">
<label class="control-label">Analizzatore:</label>
<select id="analyzers" class="form-control"></select>
<input type="hidden" id="analyzerId" />
</div>
<div class="form-group">
<label class="control-label">Tipo di manutenzione:</label>
<select id="maintenancetypes" class="form-control"></select>
</div>
查询:
$(document).ready(function () {
$('#joborders').change(function () {
populateAnalyzers();
})
});
function populateAnalyzers() {
var obj = {
joborderId: $('#joborders option:selected').val()
};
$.ajax({
url: "plannedControl.asmx/GetAnalyzers",
type: "POST",
contentType: "application/json;charset=UTF-8",
dataType: "json",
data: JSON.stringify(obj),
success: function (result) {
var s = '<option value="0">Selezionare un\'analizzatore...</option>';
var data = result.d;
for (var i = 0; i < data.length; i++) {
s += '<option value="' + data[i].Value + '">' + data[i].Text + '</option>';
}
$("#analyzers").html(s);
},
error: function (errormessage) {
alert(errormessage.responseText);
}
});
}
在编辑模式下检索数据的 JQuery:
function getPlannedModel(id) {
var obj = { id: id };
$.ajax({
url: "plannedControl.asmx/GetPlannedModel",
type: "POST",
data: JSON.stringify(obj),
contentType: "application/json;charset=UTF-8",
dataType: "json",
success: function (result) {
data = result.d;
$('#joborders').val(data.JobOrderId).change;
$('#analyzerId').val(data.AnalyzerId);
$('#maintenancetypes').val(data.MaintenanceTypeId).change;
$('#myModalLabel').html('Modifica modello di pianificazione');
$('#modalEditor').modal('show');
},
error: function (errormessage) {
alert(errormessage.responseText);
}
}).done(function () {
populateAnalyzers();
$('#analyzers').val($('#analyzerId').val()).change;
});
}
解决方案
如本答案中所述,您必须.trigger("chosen:updated");
在附加/修改后使用更新下拉列表选项。您还应该使用.append(yourNewOptionHere);
更新。当您想清除之前的列表时,请务必致电.empty();
例子:
$('#analyzers').empty();
var newOption = $('<option value="1">get your options here using ajax</option>');
$('#analyzers').append(newOption);
$('#analyzers').trigger("chosen:updated");
推荐阅读
- elixir - 如何从带有凤凰后端的榆树的静态资产中获取图像?
- c++ - 具有可变数量的参数的函数,这些参数被转换为字符串
- sql - 基于多个表和条件进行过滤的 SQL 命令
- python - 当我从 random.choice 行获得某行代码时,我正试图结束我的游戏
- python - Python记录端口514文件夹/yyyy/mm/dd
- sql - 将一排匹配到两排,无需替换
- python - 给定一个 1D ndarray 和一个整数,生成这个 ndarray 的最有效方法是什么?
- javascript - Paginationjs 的 Ajax 调用忽略文本字段值以进行过滤
- c++ - 单链表更新头指向自身?
- python - 如何显示用户输入的最大值和最小值?