需要帮助创建Jquery cascadia下拉列表

时间:2011-05-31 12:04:27

标签: jquery asp.net-mvc-2

需要帮助创建Jquery cascadia下拉列表

我对jquery很新,不知道怎么做。我做了一个快速的示例项目来尝试它,但没有在jquery方面的任何地方。

这是我的模特。

public class Life
{
    public static List<Life> MyList = new List<Life>
    {
        new Life {first="Animal",second="Mammal",third ="human"},
        new Life {first="Plant",second="Tree",third ="cherry"},
        new Life {first="Plant",second="Grass",third ="rye"},
        new Life {first="Plant",second="Tree",third ="oak"}
    };

    public string first {get; set;}
    public string second {get; set;}
    public string third {get; set;}
}

我想创建一个有3个下拉列表的视图。第一行填充第一行,然后第二行填充第二行等。所以首先下拉将有动物和植物。 如果你选择Plant,你将不会在第二次下拉中看到哺乳动物。

有什么好的例子吗?或者我如何将此示例模型用于执行此操作的视图中?

1 个答案:

答案 0 :(得分:0)

创建这样一个下拉列表的最酷方法是使用html帮助程序。我为语言选择器创建了一个(我的非常基础,数据应该来自db等,但我没有时间)。这会给你一个强硬的想法:

Dropdown helper:

 public static class HtmlHelpers
    {
       public static MvcHtmlString LanguageDropDownListFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
        {
            var dutch = new SelectListItem() { Selected = true, Text = "nl-be", Value = "nl-be" };
            var french = new SelectListItem() { Selected = false, Text = "fr-be", Value = "fr-be" };
            var list = new List<SelectListItem> { dutch, french };
            return html.DropDownListFor(expression, list);
        }
}

然后我有一个模型(只有语言字段对你很重要!):

public class Answer

{
    [Key]
    public Guid Id { get; set; }

    public Guid QuestionId { get; set; }
    public virtual Question Question { get; set; }

    public string Text { get; set; }

    [MaxLength(5)]
    public string Language { get; set; }
    public int Order { get; set; }

    public virtual ICollection<UserAnswer> UserAnswers { get; set; }
}

然后在您的视图中使用:

@Html.LanguageDropDownListFor(model => model.Language)
    @Html.ValidationMessageFor(model => model.Language)

如果您需要更多帮助,请告诉我们:)