根据其他列表中选择的内容填充Telerik下拉列表

时间:2013-07-17 16:59:38

标签: c# javascript asp.net-mvc telerik

我有一个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");
            })%>    

1 个答案:

答案 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));
    }
}