使用asp.net mvc级联下拉列表
我有一个交易类型的下拉列表,在选择时应填充交易者的下拉列表。 我的观点如下:
` - <%-- <option value=""> --%> Select a Trader type from here
- Select a Trader from here
`
我尝试使用JQuery,但我无法获得’TraderType’下拉列表的更改事件。 我的脚本是:
$("TraderType").change(function() { alert("Change"); $.ajax({ url: $("#ListTraders").attr("action"), type: 'GET', contentType: "application/json; charset=utf-8", cache: false, data: { part: $("#TraderType").val() }, dataType: 'json', async: false, success: function(data) { if ((data.lstTraders.length) > 0) { for (var count = 0; count < data.lstTraders.length; count++) { $("#Trader").append("" + data.lstTraders[count].TraderName + ""); } } } }); });
控制器中的代码是:
public JsonResult ListTraders(string trdrTypeId) { IList lstTraders = new List(); Build objBld = new Build(); Document objDoc = new Document(); string message = string.Empty; bool result = true; try { int trdrType = Convert.ToInt32(trdrTypeId); lstTraders = objBld.GetTradersByTrdrTypeId(trdrType); } catch (Exception ex) { message = ex.Message; result = false; } return Json(new { Success = result, Message = message, lstTraders = lstTraders });}
请帮帮我。
$("#TraderType").change(function() { });
你错过了#对于控制器中的动作,尝试在POST中更改VERB
$.ajax({ url: $("#ListTraders").attr("action"), type: 'POST',
像这样改变你的控制器:
[HttpPost] public JsonResult ListTraders(string trdrTypeId)
…当你返回JSON时,你应该改变这个:
return Json(new { Success = result, Message = message, lstTraders = lstTraders }, JsonRequestBehavior.DenyGet);
另外,这个参数必须匹配
data: { trdrTypeId: $("#TraderType").val() }, public JsonResult ListTraders(string trdrTypeId)
我建议你在这里使用控件;
演示: http : //demo.aspnetawesome.com/AjaxDropdownDemo
Ajax Dropdown控件可以轻松用于级联下拉列表。
此外,这里还有许多其他有用的控件。
是不是jQuery语法错了? 尝试在元素的ID之前添加哈希:
$("#TraderType").change(function...
suja,
确保您的交易者点击在直播活动内(以及在文件准备活动内),即:
希望这可以帮助..
@Suja:这就是我所做的,它的确有效。 我也删除了这一行=> contentType:“application / json; charset = utf-8”,
HTML :
- <%=Html.DropDownList("TraderType", (SelectList)ViewData["TraderType"])%> Select a Trader type from here
- Select a Trader from here
Javascript :
C#
[HttpPost] public JsonResult ListTraders(string trdrTypeId) { return (Json(true, JsonRequestBehavior.DenyGet)); }
1。
<%:Html.DropDownList("SubDepartment", (SelectList)ViewData["SelectListSubDepartment"], new { id = "SubDepartment", @class = "combobox" })%>
提供默认列表(如果有)。
2.创建一个javascript函数
3.现在提供Controller操作方法的列表。
public JsonResult IndexChk(string selectedvalue = null) { List departmentList = new List () { new Sbu { Id = 1, Name="SubPublishing"}, new Sbu { Id = 2, Name="SubSoftware"}, new Sbu { Id = 3, Name="SubEngineering"}, new Sbu { Id = 4, Name="SubShipping"}, new Sbu { Id = 5, Name="SubTranscription"} }; var selectList = new SelectList(departmentList, "id", "name", selectedvalue); return Json(selectList, JsonRequestBehavior.AllowGet); }
就是这样,现在调用在onclick,onchange上的任何事件上创建了javascript函数。