2011-05-31 73 views
0

需要帮助建立卡斯卡迪亚jQuery的下拉需要帮助建立卡斯卡迪亚jQuery的下拉

我很新的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个下拉的视图。第一个填充第一行,然后第二行进入第二个下拉列表等。所以首先下拉将有动物和植物。 如果你选择植物,你不会在第二个下拉菜单中看到哺乳动物。

那里有很好的例子吗?或者我如何将这个示例模型应用到这样的视图中?

+0

我可以假设你正在引用一个MVC.net项目? – Nealv 2011-05-31 12:13:24

+0

我的不好。是的,我正在使用asp.net mvc 2。 – Maestro1024 2011-05-31 12:23:47

回答

0

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

下拉帮手:

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) 

如果您需要更多的帮助,让我知道:)