【问题标题】:Populate Telerik Drop-down list based on what is selected in other list根据在其他列表中选择的内容填充 Telerik 下拉列表
【发布时间】:2013-07-17 16:59:37
【问题描述】:
我有一个 Telerik 下拉列表,我想根据为另一个下拉列表选择的内容来填充它。
例如:
如果我为 DDL1 选择“数字”,那么我想在 DDL2 中显示 1 到 10,如果我为 DDL1 选择“字母”,那么我想在 DDL2 中显示 a 到 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");
})%>
【问题讨论】:
标签:
c#
javascript
asp.net-mvc
telerik
【解决方案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));
}
}