根据数据库创建下拉列表
Creating dropdowns according to the database
我的数据库中有 3 个 (x,y,z) 属性有不同的属性。
我创建了一个下拉列表,根据我将在下拉列表中进行的选择,我想将属于此 属性 的属性与另一个下拉列表一起放入数据库中。
(例如我有 x, y,z 属性。X 有 ( a,b) ,y 有 (c,d) ,z 有 ( e,f) 属性。当我选择 x 属性 在下拉列表中我想在下一个下拉列表中看到 a 和 b 属性。如果我选择 y 属性,c 和 d 属性将显示在下一个下拉列表中。)
我的代码开始
<form id="CareModal">
@Html.HiddenFor(model => model.PersonID)
@Html.Hidden("DoesAddictionExist", false)
@Html.DropDownList("AddictionStatusID", (IEnumerable<SelectListItem>)ViewBag.AddictionStatus, null, new { @class = "form-control", @onchange = "AddictionChanged(this.value)" })
</form>
有人说我应该使用 Ajax 但我不知道如何使用。
无论您希望将第二个下拉列表放在何处:
<select class="form-control" data-val="true" id="AN ID" name="A NAME (NOT NEEDED)"></select>
在您的 AddictionChanged
方法中,对控制器进行 ajax 调用。
类似于:
var json = '{dropdownId: ' + //Value passed into function + '}';
$.ajax({
url: '@Url.Action("// Method", "// Controller")',
type:'POST',
data: json,
success: function(result){
// Do whatever
//Create a markup for a select
var markup = "<option Value='0'>Select option</option>";
//Populate the markup
for (var i = 0; i < result.length; i++) {
markup += "<option Value=" + result[i].Value + ">" + result[i].Text + "</option>";
}
//Populate dropdown with value
$("#//DROPDOWNLIST ID").html(markup).show();
}
});
所以这会调用控制器(具有参数 dropdownId
),将其传递给 id
(无论您传递给此函数的是什么)。你,在你的控制器中,会调用一个服务/数据库(不确定你的项目是如何构建的)和 return 这个 ajax/js 函数的列表。 success
中的代码创建标记并将其插入下拉列表中。
我的数据库中有 3 个 (x,y,z) 属性有不同的属性。 我创建了一个下拉列表,根据我将在下拉列表中进行的选择,我想将属于此 属性 的属性与另一个下拉列表一起放入数据库中。
(例如我有 x, y,z 属性。X 有 ( a,b) ,y 有 (c,d) ,z 有 ( e,f) 属性。当我选择 x 属性 在下拉列表中我想在下一个下拉列表中看到 a 和 b 属性。如果我选择 y 属性,c 和 d 属性将显示在下一个下拉列表中。)
我的代码开始
<form id="CareModal">
@Html.HiddenFor(model => model.PersonID)
@Html.Hidden("DoesAddictionExist", false)
@Html.DropDownList("AddictionStatusID", (IEnumerable<SelectListItem>)ViewBag.AddictionStatus, null, new { @class = "form-control", @onchange = "AddictionChanged(this.value)" })
</form>
有人说我应该使用 Ajax 但我不知道如何使用。
无论您希望将第二个下拉列表放在何处:
<select class="form-control" data-val="true" id="AN ID" name="A NAME (NOT NEEDED)"></select>
在您的 AddictionChanged
方法中,对控制器进行 ajax 调用。
类似于:
var json = '{dropdownId: ' + //Value passed into function + '}';
$.ajax({
url: '@Url.Action("// Method", "// Controller")',
type:'POST',
data: json,
success: function(result){
// Do whatever
//Create a markup for a select
var markup = "<option Value='0'>Select option</option>";
//Populate the markup
for (var i = 0; i < result.length; i++) {
markup += "<option Value=" + result[i].Value + ">" + result[i].Text + "</option>";
}
//Populate dropdown with value
$("#//DROPDOWNLIST ID").html(markup).show();
}
});
所以这会调用控制器(具有参数 dropdownId
),将其传递给 id
(无论您传递给此函数的是什么)。你,在你的控制器中,会调用一个服务/数据库(不确定你的项目是如何构建的)和 return 这个 ajax/js 函数的列表。 success
中的代码创建标记并将其插入下拉列表中。