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);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值