通过@Html.DropDownList
非强类型进行BookType的选择,初始显示原来的BookType
值,通过点选下拉列表再点击“更新”按钮进行数据的更新,即“不更新回传原数据、更新则回传新数据”。
bookindex.cshtml 部分代码:
@foreach (var item in Model) {
<tr>
<td>
@Html.DropDownList("detail.booktype", db.bll.listHelper.getBookType(),item.BookType,new { style = "width=80px" })
</td>
</tr>
}
bookindex.cshtml 效果图:
当不改变(即不重新选择)BookType
的值时,此时提交到后端的结果为空,需要不改变时回传原值则要改变代码。
改进代码,通过在bookindex.cshtml 的 getBookType()
方法中回传初始值,在listHelper.cs的 getBookType(string oldValue)
中增加DropdownList中Selected 的判断。
改进的bookindex.cshtml部分代码如下所示:
@foreach (var item in Model) {
<tr>
<td>
@Html.DropDownList("detail.booktype", db.bll.listHelper.getBookType(item.BookType),new { style = "width=80px" })
</td>
</tr>
}
listHelper.cs 中的代码如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Mvc;
namespace db.bll
{
public class listHelper
{
public static List<SelectListItem> getCity() {
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem() { Text = "南京",Value="nj"});
list.Add(new SelectListItem() { Text = "苏州",Value="sz"});
list.Add(new SelectListItem() { Text = "泰州",Value="tz"});
return list;
}
public static List<SelectListItem> getSex()
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem() { Text = "男", Value = "F" });
list.Add(new SelectListItem() { Text = "女", Value = "M" });
list.Add(new SelectListItem() { Text = "保密", Value = "null" });
return list;
}
public static List<SelectListItem> getHobby()
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem() { Text = "读书", Value = "readBook" });
list.Add(new SelectListItem() { Text = "跑步", Value = "run" });
list.Add(new SelectListItem() { Text = "看电影", Value = "film" });
return list;
}
public static List<SelectListItem> getBookType()
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem() { Text = "计算机", Value = "计算机" });
list.Add(new SelectListItem() { Text = "外语", Value = "外语" });
list.Add(new SelectListItem() { Text = "艺术", Value = "艺术" });
return list;
}
public static List<SelectListItem> getBookType(string oldValue)
{
oldValue = oldValue == null ? "" : oldValue;
List<string> selectedList = oldValue.Split(',').ToList<string>();
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem() { Text = "计算机", Value = "计算机" });
list.Add(new SelectListItem() { Text = "外语", Value = "外语" });
list.Add(new SelectListItem() { Text = "艺术", Value = "艺术" });
foreach (var item in list) {
if (selectedList.Contains(item.Value)) {
item.Selected = true;
}
}
return list;
}
public static List<SelectListItem> getBookTag()
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem() { Text = "低折扣", Value = "低折扣" });
list.Add(new SelectListItem() { Text = "畅销书", Value = "畅销书" });
list.Add(new SelectListItem() { Text = "促销书", Value = "促销书" });
return list;
}
public static List<SelectListItem> getBookTag(string oldValue)
{
oldValue = oldValue == null ? "" : oldValue;
List<string> selectedList = oldValue.Split(',').ToList<string>();
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem() { Text = "低折扣", Value = "低折扣" });
list.Add(new SelectListItem() { Text = "畅销书", Value = "畅销书" });
list.Add(new SelectListItem() { Text = "促销书", Value = "促销书" });
foreach (var item in list)
{
if (selectedList.Contains(item.Value))
{
item.Selected = true;
}
}
return list;
}
}
}
改进后的程序即可完全实现”不更新回传原数据、更新则回传新数据“的功能。