Ted*_*Ted 25 c# asp.net-mvc selectlist
我正在扩展一个枚举,并给出以下代码,selectListItems是一个通用的SelectListItem列表,它具有我的枚举的所有正确值.
第一个foreach循环工作正常.但是,当我创建实际的SelectList并传入时selectListItems,所有值都将丢失.我怎样才能保持这些价值不变?
foreach (SelectListItem item in selectListItems)
{
string tex = item.Text;
string val = item.Value;
string sel = item.Selected.ToString();
}
SelectList selectList = new SelectList(selectListItems);
foreach (SelectListItem slid in selectList)
{
string tex = slid.Text;
string val = slid.Value;
string sel = slid.Selected.ToString();
}
Run Code Online (Sandbox Code Playgroud)
Kel*_*sey 54
您需要更改构建它的行以告诉它在哪里查找值.在你的情况下,它将是:
SelectList selectList = new SelectList(selectListItems, "Value", "Text");
Run Code Online (Sandbox Code Playgroud)
但这不会延续所选项目.在这种情况下,您需要确定哪个项目应该是所选项目,并通过第四个参数传递它的值.
这是一个例子:
List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem() { Text = "Test1", Value = "1", Selected = false });
items.Add(new SelectListItem() { Text = "Test8", Value = "8", Selected = true });
items.Add(new SelectListItem() { Text = "Test3", Value = "3", Selected = false });
items.Add(new SelectListItem() { Text = "Test5", Value = "5", Selected = false });
SelectList sl = new SelectList(items, "Value", "Text", "8");
Run Code Online (Sandbox Code Playgroud)
您可能还想查看可能有用的SO线程.
编辑:刚刚看到你的评论,它不起作用,因为它不够聪明,知道默认情况下查找Text和Value字段.您可以将它传递给一种对象,它使您能够通过定义要映射到Text和Value属性的属性来绑定它.
| 归档时间: |
|
| 查看次数: |
57366 次 |
| 最近记录: |