我有一个Telerik下拉列表,我想根据为另一个下拉列表选择的内容填充该列表。
例如:
如果我为DDL1选择“Numbers”,那么我想在DDL2中显示1到10,如果我为DDL1选择“Alphabets”,那么我想在DDL2中显示一个z。
以下是我填充DDL1的方法:
<%= Html.Telerik().DropDownList().Name("Type")
.HtmlAttributes(new { @id = "Type" })
.Items(items => {
items.Add().Text("").Value("");
items.Add().Text("Numbers").Value("Numbers");
items.Add().Text("Alphabets").Value("Alphabets");
})%>
答案 0 :(得分:1)
你可以这样做:
查看:强>
<p>
<%: Html.Label("Type") %>
<%: Html.Telerik().DropDownList().Name("Type")
.HtmlAttributes(new { id = "type" })
.Items(items => {
items.Add().Text("").Value("");
items.Add().Text("Numbers").Value("1");
items.Add().Text("Alphabets").Value("2");
})
.CascadeTo("Values")
%>
</p>
<p>
<%: Html.Label("Values" %>
<%: Html.Telerik().DropDownList().Name("Values")
.HtmlAttributes(new { id = "values" })
.DataBinding(b => b.Ajax().Select("GetDropDownValues", "Home"))
%>
</p>
<强>控制器:强>
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public JsonResult GetDropDownValues(int? type)
{
var values = new List<string>();
switch (type)
{
case 1:
values = Enumerable.Range(1, 10).Select(n => n.ToString()).ToList();
break;
case 2:
values = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray().Select(c => c.ToString()).ToList();
break;
}
return Json(new SelectList(values));
}
}