jquery - 在 Core MVC ASP.NET 上使用 ajax jquery 基于另一个 dropdwonlis 更改下拉列表的值
问题描述
<div class="form-group">
@Html.DropDownList("ddlCentre", ViewBag.Centre_Commercial as List<SelectListItem>,
" -- Sélectionnez Centre Commercial --", new { @class = "form-control" })
<br />
@Html.DropDownList("ddlLocal", new List<SelectListItem>(),
" -- Sélectionnez Local --", new { @class = "form-control" })
</div>
我有中心列表和本地列表:我想要的是当我选择除本地 DropDownListFor 本地之外的任何中心下拉列表时必须更改。控制器动作:
[HttpPost]
public JsonResult GetLocalsList(int id)
{
List<Local> lstLocal= new List<Local>();
lstLocal = objLocal.GetLocalsData(id).ToList();
return Json(lstLocal);
}
并查看:
<div class="form-group">
@Html.DropDownList("ddlCentre", ViewBag.Centre_Commercial as List<SelectListItem>,
" -- Sélectionnez Centre Commercial --", new { @class = "form-control" })
<br />
@Html.DropDownList("ddlLocal", new List<SelectListItem>(),
" -- Sélectionnez Local --", new { @class = "form-control" })
</div>
<script>
$(document).ready(function () {
var data = $(this).val();
$.ajax({
url: "@Url.Action("GetLocalsList")",
type: "POST",
contentType: 'application/x-www-form-urlencoded',
data: data,
dataType: "json",
success: function (data) {
console.log(data);
$.each(data, function (index, row) {
$("#ddlLocal").append("<option value='" + row.id + "'>" + row.id + "</option>")
});
},
error: function (req, status, error) {
alert(error);
}
});
});
</script>
解决方案
so I do That but not worked for me :so my code in below:
public IEnumerable<Local> GetLocalsData(int id)
{
List<Local> lstLocals = new List<Local>();
using (SqlConnection con = new SqlConnection("Server=DSER\\SQLEXPRESS;database=databaseST;integrated security=yes"))
{
SqlCommand cmd = new SqlCommand("spGetLocal", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@id",id);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Local loc = new Local();
loc.Id_local = Convert.ToInt32(dr[0]);
loc.metrage = Convert.ToInt32(dr[1].ToString());
loc.Prix_vente=Convert.ToInt32(dr[2].ToString());
loc.NumAct = Convert.ToInt32(dr[3].ToString());
loc.Num_Centre = Convert.ToInt32(dr[4].ToString());
loc.Type_local = dr[5].ToString();
lstLocals.Add(loc);
}
}
return lstLocals;
on controller I Have Action:
[HttpPost]
public JsonResult GetLocalsList(int id)
{
List<Local> lstLocal= new List<Local>();
lstLocal = objLocal.GetLocalsData(id).ToList();
return Json(lstLocal);
}
and on the view:
<script>
$("#ddlCentre").change(function () {
$("#ddlLocal").empty().append('<option>-- Sélectionnez Local --</option>');
var id = $(this).val();
if (id != "")
$.ajax({
url: "@Url.Action("GetLocalsList")",
type: "POST",
data: 'Num_Centre=' + id,
contentType: 'application/json',
// data:"id_local="+id,
dataType: "json",
success: function (data) {
var json = $.parseJSON(data); // create an object with the key of the array
alert(json.html);
console.log(data);
$.each(data, function (index, row) {
$("#ddlLocal").append("<option value='" + row.id + "'>" + row.id + "</option>")
});
},
error: function (req, status, error) {
alert(error);
}
});
});
</script>
it's not worked ? thanks in advance
推荐阅读
- c# - 如何在 C# (SOAP) 中发出 POST Web 请求
- java - Is there a way in Java to intercept the creation of a object by using Instrumentation?
- web-scraping - 使用 Scrapy 获取结构化输出
- c++ - OpenVINO 演示:多通道人脸检测演示;TBB LINK 2019 错误
- java - 是否有可能有一个“HotReload”基于 docker 的 java 环境?
- c++ - 构造函数与数组初始值设定项的歧义
- swiftui - 如何将全局应用程序状态桥接到模型视图(使用@ObservedObject)?
- docker - docker ps 仅列出名称和状态
- azure - Azure 函数保存到没有内容标题的文件
- python - 使用python将十六进制地址.xlsx文件转换为csv int