我在我的一个Asp.net MVC应用程序中使用select2下拉列表。我需要在没有刷新页面的情况下在数据库中添加项目后绑定/重新加载下拉列表。现在我正在使用视图包绑定下拉。
我有按钮点击时使用弹出窗口添加新项目的功能。我想在数据库中添加新项目后再次重新加载/绑定。
HTML:
@Html.DropDownListFor(x => x.BuildingSectorId, new SelectList(ViewBag.BuildingSectors, "BuildingSectorId", "Name"), new { @class = "form-control select2 pull-left", @id = "dr_buildingsector" })
<button type="button" class="btn btn-default " onclick="CreateBuildingSectorDialog()"><i class="fa fa-plus"></i></button>
JQuery的
var dropdown = $(".select2");
if (dropdown != null)
dropdown.select2({
minimumResultsForSearch: -1,
});
任何帮助将不胜感激。
答案 0 :(得分:0)
您需要使用Ajax调用
$(document).ready(function () {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "CountryDetails.asmx/LoadCountry",
data: "{}",
dataType: "json",
success: function (Result) {
Result=Result.d;
$.each(Result, function (key, value) {
$("#ddlcountry").append($("<option></option>").val
(value.CountryId).html(value.CountryName));
});
// Another way of writing
// for (var i = 0; i < Result.length; i++) {
// $("#ddlcountry").append("<option value=" + Result[i].ID + ">" +
// Result[i].Name + "</option>");
// }
// One more way of writing
// for (var i in Result) {
// $("#ddlcountry").append($("<option></option>").val(Result[i].ID).
// text(Result[i].Name));
// }
},
error: function (Result) {
alert("Error");
}
});
});
答案 1 :(得分:0)
如果要重新下载下拉列表,请使用ajax调用和jquery来加载数据。
$.ajax({
type: "POST",
url: "pullDataBase.php",
success: function(dataget){
console.log(dataget);
var data2comboBox1 = JSON.parse(dataget);
$('#comboBox1').select2({
placeholder: "Something...",
data: data2comboBox1,
disabled : false
});
//console.log("current select");
//console.log($('#comboBox1').val());
//console.log($('#comboBox1 :selected').text());
},
error: function(jqXHR, textStatus, errorThrown){ alert('error ' + errorThrown);}
});
您可以在网址中过滤结果