如何多选 ListBox asp.net
How to multiselect ListBox asp.net
我用 asp.net razor
创建了一个列表框。但我希望能够多选列表框。我该怎么做?
我想使用这样的东西:
[HttpPost]
public ActionResult KenmerkSelectie(List<string> VarFromKenmerk1)
{
}
以下列表框仅发布一个变量:
@using (Html.BeginForm("KenmerkSelectie", "KenmerkSelectie", FormMethod.Post, new { id = "kenmerk1" }))
{
@Html.ListBox("VarFromKenmerk1", (SelectList)ViewBag.var)
<input type="submit" value="submit"/>
}
编辑:
我正在尝试以下代码,但出现错误:
@using (Html.BeginForm("KenmerkSelectie", "KenmerkSelectie", FormMethod.Post, new { id = "kenmerk1" }))
{
@Html.ListBoxFor("VarFromKenmerkTEST",(MultiSelectList)ViewBag.var), new {@style = "width: 252px; height: 300px;"})
<input type="submit" value="submit"/>
}
public ActionResult index()
{
ViewBag.VarFromKenmerk1 = new List<SelectListItem>();
ViewBag.VarFromKenmerk1.Add(new SelectListItem
{
Value = "House",
Text = "House"
});
ViewBag.VarFromKenmerkTEST = new MultiSelectList(ViewBag.VarFromKenmerk1);
return View();
}
[HttpPost]
public ActionResult KenmerkSelectie(List<string> VarFromKenmerkTEST){
foreach(var ken in VarFromKenmerkTEST){
//selected items
}
}
Compiler Error Message: CS0411: The type arguments for method
'System.Web.Mvc.Html.SelectExtensions.ListBoxFor(System.Web.Mvc.HtmlHelper,
System.Linq.Expressions.Expression>,
System.Collections.Generic.IEnumerable)'
cannot be inferred from the usage. Try specifying the type arguments
explicitly.
Source Error:
@Html.ListBoxFor("VarFromKenmerkTEST",(MultiSelectList)ViewBag.var),
new {@style = "width: 252px; height: 300px;"})
不知道KenmerkSelectie里的参数好不好
您需要设置 SelectList class 的 Selected 属性 以及添加属性 new {Multiple = "multiple"}
@{
var VarFromKenmerk1= new List<SelectList> {
new SelectList{ Text = "Text1", Value = "Value1", Selected = true },
new SelectList { Text = "Text2", Value = "Value2" },
new SelectList { Text = "Text3", Value = "Value3", Selected = true }
};
}
@Html.ListBox("VarFromKenmerk1", VarFromKenmerk1, new {Multiple = "multiple"})
您应该使用 viewModel 将数据传递给您的视图(强类型),然后使用
创建您的列表框
@Html.ListBoxFor(viewmodel => viewmodel.model.property, viewmodel.data )
viewmodel 的数据属性应该是 Multiselectlist
视图模型:
public class viewModel
{
public MultiSelectList data { get; set; }
public Model model { get; set; }
}
我用 asp.net razor
创建了一个列表框。但我希望能够多选列表框。我该怎么做?
我想使用这样的东西:
[HttpPost]
public ActionResult KenmerkSelectie(List<string> VarFromKenmerk1)
{
}
以下列表框仅发布一个变量:
@using (Html.BeginForm("KenmerkSelectie", "KenmerkSelectie", FormMethod.Post, new { id = "kenmerk1" }))
{
@Html.ListBox("VarFromKenmerk1", (SelectList)ViewBag.var)
<input type="submit" value="submit"/>
}
编辑: 我正在尝试以下代码,但出现错误:
@using (Html.BeginForm("KenmerkSelectie", "KenmerkSelectie", FormMethod.Post, new { id = "kenmerk1" }))
{
@Html.ListBoxFor("VarFromKenmerkTEST",(MultiSelectList)ViewBag.var), new {@style = "width: 252px; height: 300px;"})
<input type="submit" value="submit"/>
}
public ActionResult index()
{
ViewBag.VarFromKenmerk1 = new List<SelectListItem>();
ViewBag.VarFromKenmerk1.Add(new SelectListItem
{
Value = "House",
Text = "House"
});
ViewBag.VarFromKenmerkTEST = new MultiSelectList(ViewBag.VarFromKenmerk1);
return View();
}
[HttpPost]
public ActionResult KenmerkSelectie(List<string> VarFromKenmerkTEST){
foreach(var ken in VarFromKenmerkTEST){
//selected items
}
}
Compiler Error Message: CS0411: The type arguments for method 'System.Web.Mvc.Html.SelectExtensions.ListBoxFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>, System.Collections.Generic.IEnumerable)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
Source Error: @Html.ListBoxFor("VarFromKenmerkTEST",(MultiSelectList)ViewBag.var), new {@style = "width: 252px; height: 300px;"})
不知道KenmerkSelectie里的参数好不好
您需要设置 SelectList class 的 Selected 属性 以及添加属性 new {Multiple = "multiple"}
@{
var VarFromKenmerk1= new List<SelectList> {
new SelectList{ Text = "Text1", Value = "Value1", Selected = true },
new SelectList { Text = "Text2", Value = "Value2" },
new SelectList { Text = "Text3", Value = "Value3", Selected = true }
};
}
@Html.ListBox("VarFromKenmerk1", VarFromKenmerk1, new {Multiple = "multiple"})
您应该使用 viewModel 将数据传递给您的视图(强类型),然后使用
创建您的列表框@Html.ListBoxFor(viewmodel => viewmodel.model.property, viewmodel.data )
viewmodel 的数据属性应该是 Multiselectlist
视图模型:
public class viewModel
{
public MultiSelectList data { get; set; }
public Model model { get; set; }
}