ASP.NET Telerik 组合框未更新为新值
ASP.NET Telerik combobox is not being updated with new values
我有一个使用 Telerik 控件的 ASP.NET MVC 应用程序。我是 Telerik 控件的新手。
在我的 asp.net 视图 (.cshtml) 中,我定义了以下 Telerik 组合框:
<div class="inline-form-field">
<label>@Ubicaciones.lblTipoVia.ToUpper()</label>
@(Html.Telerik().DropDownListFor(t => t.tipoViaId)
.BindTo(new SelectList(@ViewBag.tiposVia, "tipoViaId", "descripcion"))
.HtmlAttributes(new { style = "width: 190px;" })
)
</div>
稍后在同一视图中,当满足条件时,我在下面调用 javascript 函数,以便使用来自 ASP.NET MVC 控制器中的函数的新值更新组合框:
function cargarTiposVia(){
var comboTiposVia = $('#tipoViaId').data('tDropDownList').value();
var actionUrl = '@Url.Action("GetTiposVia", "Ubicaciones")?municipioId=' + $('#codigoMunicipio').val() + '&localidadId=' + $('#codigoLocalidad').val() ;
$.ajax({
url: actionUrl,
async:false,
type: "POST",
traditional: true,
success: function (data) {
if (data)
{
comboTiposVia.dataBind(data);
}
}
});
}
ASP.NET MVC 控制器中的函数 GetTiposVia 下方:
public JsonResult GetTiposVia(string municipioId, string localidadId)
{
CommonManager commonManager = new CommonManager(currentUserSociedadId);
List<My.DTOs.TipoViaDTO> tiposVia = commonManager.getTiposViaByMunicipio(municipioId);
//ViewBag.tiposVia = tiposVia;
return Json(new SelectList(tiposVia, "tipoViaId", "descripcion"), JsonRequestBehavior.AllowGet);
}
Ajax 结果是成功的(我已经通过发出警报进行了检查),因此执行了 comboTiposVia.dataBind(data) 但组合框未加载新值。我不明白发生了什么...
我已经解决了。问题是我在组合框中获取了当前项目选择的值,而不是组合框实例。
变化中:
var comboTiposVia = $('#tipoViaId').data('tDropDownList').value();
来自
var comboTiposVia = $('#tipoViaId').data('tDropDownList');
正在工作。
我有一个使用 Telerik 控件的 ASP.NET MVC 应用程序。我是 Telerik 控件的新手。
在我的 asp.net 视图 (.cshtml) 中,我定义了以下 Telerik 组合框:
<div class="inline-form-field">
<label>@Ubicaciones.lblTipoVia.ToUpper()</label>
@(Html.Telerik().DropDownListFor(t => t.tipoViaId)
.BindTo(new SelectList(@ViewBag.tiposVia, "tipoViaId", "descripcion"))
.HtmlAttributes(new { style = "width: 190px;" })
)
</div>
稍后在同一视图中,当满足条件时,我在下面调用 javascript 函数,以便使用来自 ASP.NET MVC 控制器中的函数的新值更新组合框:
function cargarTiposVia(){
var comboTiposVia = $('#tipoViaId').data('tDropDownList').value();
var actionUrl = '@Url.Action("GetTiposVia", "Ubicaciones")?municipioId=' + $('#codigoMunicipio').val() + '&localidadId=' + $('#codigoLocalidad').val() ;
$.ajax({
url: actionUrl,
async:false,
type: "POST",
traditional: true,
success: function (data) {
if (data)
{
comboTiposVia.dataBind(data);
}
}
});
}
ASP.NET MVC 控制器中的函数 GetTiposVia 下方:
public JsonResult GetTiposVia(string municipioId, string localidadId)
{
CommonManager commonManager = new CommonManager(currentUserSociedadId);
List<My.DTOs.TipoViaDTO> tiposVia = commonManager.getTiposViaByMunicipio(municipioId);
//ViewBag.tiposVia = tiposVia;
return Json(new SelectList(tiposVia, "tipoViaId", "descripcion"), JsonRequestBehavior.AllowGet);
}
Ajax 结果是成功的(我已经通过发出警报进行了检查),因此执行了 comboTiposVia.dataBind(data) 但组合框未加载新值。我不明白发生了什么...
我已经解决了。问题是我在组合框中获取了当前项目选择的值,而不是组合框实例。
变化中:
var comboTiposVia = $('#tipoViaId').data('tDropDownList').value();
来自
var comboTiposVia = $('#tipoViaId').data('tDropDownList');
正在工作。