在mvc中经常会使用到下拉列表,以下以两种方式来实现,一种是以  @Html.DropDownList 扩展方法,一种是以 <select><option></option></select> 这样的 html 代码和 HashTable来实现

1.  @Html.DropDownList 扩展方法

 View 代码:

            @if (ViewData["listCategory"] != null)
            {
                @Html.DropDownList("listcategory", ViewData["listCategory"] as IEnumerable<SelectListItem>, "---请选择类型---")
            }
View Code

Control 代码:

 ViewData["listCategory"] = cardCategory.GetAll();

 

  public List<Sns.Management.Model.CardCategory> GetAll()
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select ");
            strSql.Append(" id,category_name");
            strSql.Append(" from pro_card_category");
            strSql.Append(" order by sort asc");
            DataSet ds = DbHelperMySQL.Query(strSql.ToString());
            System.Collections.Hashtable hashtable = new System.Collections.Hashtable();

            List<Sns.Management.Model.CardCategory> mylist = new List<Model.CardCategory>();

            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    Sns.Management.Model.CardCategory model = new Model.CardCategory();
                    model.Id = row[0].ToString();
                    model.CategoryName = row[1].ToString();
                    mylist.Add(model);
                }
            }
            return mylist;
        }
View Code

2. 使用 html 标签 + HashTable

 View 代码:

            <select style="width:130px;" id="CategoryId" name="CategoryId">
                <option value="0">请选择分类名称</option>
                @if (ViewData["listCategory"] != null)
                {
                    System.Collections.Hashtable myhashtable = ViewData["listCategory"] as System.Collections.Hashtable;

                    foreach (System.Collections.DictionaryEntry item in myhashtable)
                    {
                        if (Model != null && Model.CategoryId == item.Key.ToString())
                        {
                            <option value="@item.Key" selected="selected">@item.Value</option>

                        }
                        else
                        {
                            <option value="@item.Key">@item.Value</option>
                        }
                    }
                }

            </select>

 

            <select style="width:130px;" id="CategoryId" name="CategoryId">
                <option value="0">请选择分类名称</option>
                @if (ViewData["listCategory"] != null)
                {
                    System.Collections.Hashtable myhashtable = ViewData["listCategory"] as System.Collections.Hashtable;

                    foreach (System.Collections.DictionaryEntry item in myhashtable)
                    {
                        <option value="@item.Key">@item.Value</option>
                    }
                }

            </select>
View Code

Control 代码:

 ViewData["listCategory"] = skinCategory.GetAll();

 

  /// <summary>
        ///  hashtable  key: id的值,  value: 分类名称
        /// </summary>
        /// <returns></returns>
        public System.Collections.Hashtable GetAll()
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select ");
            strSql.Append(" id,category_name");
            strSql.Append(" from pro_skin_category");
            strSql.Append(" order by sort asc");
            DataSet ds = DbHelperMySQL.Query(strSql.ToString());
            System.Collections.Hashtable hashtable = new System.Collections.Hashtable();
            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    hashtable.Add(row[0].ToString(), row[1].ToString());
                }
            }
            return hashtable;

        }
View Code

 

posted on 2015-03-22 17:11  wisdo  阅读(926)  评论(0编辑  收藏  举报