我在表单中使用 Asp.Net MVC4 我在级联中有下拉列表,当我在另一个 DropDownList 中选择“Distrito”时,会加载“Sucursal”的值,这可以正常工作我可以插入一条记录我的问题是当我需要搜索检索数据的项目未设置正确的值。这是控制器中的代码:
public JsonResult Buscar(string id){
string Mensaje = "";
Models.cSinDenuncias oDenuncia = new Models.cSinDenuncias();
oDenuncia.sd_iddenuncia = id;
var denuncia = Servicio.RecuperaDenuncia<Models.cSinDenuncias>(ref Mensaje, oDenuncia.getPk(), oDenuncia);
string HoraDenuncia = denuncia.sd_horadenuncia.ToString();
return Json(new {objDenuncia = denuncia, hDenuncia = HoraDenuncia});
}
在 objDenuncia 我有值例如值 objDenuncia.sd_pardistrito = "TJA" objDenuncia.sd_sucursal = "YCB"
当我发现这是我在视图中的代码时:
function Buscar() {
var Iddenuncia = $('#sd_iddenuncia').val();
$.ajax({
url: '@Url.Action("Buscar", "raDenuncia")',
type: 'POST',
data: { Id: Iddenuncia },
dataType: 'json',
success: function (data) {
$('#sd_iddenuncia').val(data.objDenuncia.sd_iddenuncia);
$('#ddlParDistrito').val(data.objDenuncia.sd_pardistrito);
$('#ddlParDistrito').trigger('change');
$('#ddlSucursal').trigger('change');
$('#ddlSucursal').val();
$('#ddlSucursal').val(data.objDenuncia.sd_sucursal);
$("select#ddlSucursal").val(data.objDenuncia.sd_sucursal);
}
});
}
下拉列表中的值 ddlParDistrito is "TJA" text is "TARIJA" 很好地显示了组件中的文本 execute $('#ddlParDistrito').trigger('change'); 此下拉列表“Sucursal”的加载数据但未设置当前值,此显示“--SUCURSAL--”此处当前值应为“YCB”,文本为“YACUIBA”,请帮助我解决这个问题。
问候里卡多
在我看来,我有这个下拉列表,对于“SUCURSAL”,我使用 new SelectList(Enumerable.Empty()
<td class="name"><label>Distrito:</label></td>
<td class="name">@Html.DropDownListFor(u => u.sd_pardistrito, new SelectList(ViewBag.Distrito as System.Collections.IEnumerable, "cp_idparametro", "cp_descparametro"), "-- DISTRITO --", new { id = "ddlParDistrito", style = "width:125px;" })</td>
<td class="name"><label>Sucursal:</label></td>
<td class="name">@Html.DropDownListFor(u => u.sd_sucursal, new SelectList(Enumerable.Empty<SelectListItem>(), "cp_idparametro", "cp_descparametro"), "-- SUCURSAL --", new { id = "ddlSucursal", style = "width:125px;" })</td>
在我的控制器中,我使用此方法在“DISTRITO”中更改选项时加载下拉列表
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult LoadSucusalByDistrito(string id)
{
var sucursalList = this.GetSucursal(id);
var sucursalData = sucursalList.Select(m => new SelectListItem()
{
Text = m.cp_descparametro,
Value = m.cp_idparametro,
});
return Json(sucursalData, JsonRequestBehavior.AllowGet);
}
在我看来,当更改选项 ddlDistrito 加载 ddlSucursal
$("#ddlParDistrito").change(function () {
var idDistrito = $(this).val();
$.getJSON("/raDenuncia/LoadSucusalByDistrito", { id: idDistrito },
function (distritoData) {
var select = $("#ddlSucursal");
select.empty();
select.append($('<option/>', {
value: 0,
text: "-- SUCURSAL --"
}));
$.each(distritoData, function (index, itemData) {
select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
});
});
});