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

Populate Telerik Drop-down list based on what is selected in other list

本文关键字:填充 Telerik 下拉列表 选择 其他 列表      更新时间:2023-09-26

我有一个Telerik下拉列表,我想根据为另一个下拉列表选择的内容来填充它。

例如:

如果我为DDL1选择"数字",那么我希望在DDL2中显示1到10。

以下是我如何填充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");
            })%>    

你可以这样做:

视图:

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