200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > asp.net 改变html asp.net-mvc-3 – 选择更改事件 – Html.DropDownListFor

asp.net 改变html asp.net-mvc-3 – 选择更改事件 – Html.DropDownListFor

时间:2021-01-16 02:50:05

相关推荐

asp.net 改变html asp.net-mvc-3 – 选择更改事件 – Html.DropDownListFor

使用HTTPAttributes字段给两个下拉列表的唯一ID:

@Html.DropDownListFor(m => m.DistrictId,"Select One",new {@id="ddlDMManagers"})

应将第二个下拉列表初始化为空列表:

@Html.DropDownListFor(m => m.TMId,Enumerable.Empty(),new {@id="ddlTMManagers"})

如果您不介意使用jQuery ajax在第一个下拉列表中触发“更改”事件时更新第二个下拉列表:

$(function() {

$('select#ddlDMManagers').change(function() {

var districtId = $(this).val();

$.ajax({

url: 'LoadTerritoryManagers',type: 'POST',data: JSON.stringify({ districtId: districtId }),dataType: 'json',contentType: 'application/json',success: function (data) {

$.each(data,function (key,TMManagers) {

$('select#ddlTMManagers').append('Select One');

// loop through the TM Managers and fill the dropdown

$.each(TMManagers,function(index,manager) {

$('select#ddlTMManagers').append(

''

+ manager.Name +

'');

});

});

}

});

});

});

将此类添加到您的控制器命名空间中:

public class TMManager

{

public int Id {get; set;}

public string Name {get; set;}

}

您将需要更新控制器操作LoadTerritoryManagers(),以响应ajax请求并返回一个{Id,Name}对象的JSON数组。

[HttpPost]

public ActionResult LoadTerritoryManagers(int districtId)

{

var _TMS = (from c in SessionHandler.CurrentContext.ChannelGroups

join cgt in SessionHandler.CurrentContext.ChannelGroupTypes on c.ChannelGroupTypeId equals cgt.ChannelGroupTypeId

where cgt.Name == "Territory" && c.ParentChannelGroupId == districtId

select new TMManager(){ Id = c.ChannelGroupId,Name = c.Name }).OrderBy(m => m.Name);

if (_TMS == null)

return Json(null);

List managers = (List)_TMS.ToList();

return Json(managers);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。