.NET MVC中给下拉框填充数据

在MVC 中绑定模型的视图,很多时候都会用到下拉框,所以在此记录一下根据DataTable中的数据给下拉框填充数据的方法

 1      /// <summary>
 2         /// 将 DataTable 转成下拉框的填充数据List<SelectListItem>类型
 3         /// </summary>
 4         /// <param name="dt">数据DataTable</param>
 5         /// <param name="keyColumnName">展示文本列</param>
 6         /// <param name="valueColumnName">选中值列</param>
 7         /// <param name="has请选择">是否使用请选择</param>
 8         /// <param name="has请选择Text">请选择的文本  默认为 =请选择=</param>
 9         /// <param name="defaultValue">默认下拉框选中的值</param>
10         /// <returns></returns>
11         public static List<SelectListItem> bindValues(DataTable dt, string keyColumnName, string valueColumnName, bool has请选择 = false, string has请选择Text = "", string defaultValue = "")
12         {
13             List<SelectListItem> list = new List<SelectListItem>();
14             if (has请选择)
15             {
16                 SelectListItem item = new SelectListItem() { Text = has请选择Text == "" ? “=请选择=” : has请选择Text, Value = "" };
17                 list.Add(item);
18             }
19
20
21             if (dt.Rows.Count == 0)
22                 return list;
23             List<Tuple<string, string>> valueList = DataTableToList(dt, keyColumnName, valueColumnName);
24             foreach (var item in valueList)
25             {
26                 if (defaultValue != “” && defaultValue.Contains(item.Item1))
27                     list.Add(new SelectListItem() { Text = item.Item2, Value = item.Item1, Selected = true });
28                 else
29                     list.Add(new SelectListItem() { Text = item.Item2, Value = item.Item1, Selected = false });
30             }
31             return list;
32         }

这个方法是将指定多列数据的DataTable的某一列为展示文本,某一列为选中值,然后根据元组Tuple为List的项来存放。元组是C#7.0中新出来的,有兴趣的可以了解一下。

 1         /// <summary>
 2         /// 将DataTable转成List
 3         /// </summary>
 4         /// <param name="table">要转的DataTable</param>
 5         /// <param name="keyColumnName">指定展示文本列</param>
 6         /// <param name="valueColumnName">指定选中值列</param>
 7         /// <returns></returns>
 8         public static List<Tuple<string, string>> DataTableToList(DataTable table, string keyColumnName, string valueColumnName)
 9         {
10             List<Tuple<string, string>> list = new List<Tuple<string, string>>();
11             if (table.Rows.Count == 0)
12                 return null;
13             for (int i = 0; i < table.Rows.Count; i++)
14             {
15                 list.Add(new Tuple<string, string>(table.Rows[i][keyColumnName].ToString(), table.Rows[i][valueColumnName].ToString()));
16             }
17             return list;
18         }

原文地址:https://www.cnblogs.com/yanwu/p/11103297.html

时间: 2024-10-13 23:26:58

.NET MVC中给下拉框填充数据的相关文章

ASP.NET MVC中的cshtml页面中的下拉框的使用

ASP.NET MVC中的cshtml页面中的下拉框的使用 用上@Html.DropDownList 先记下来..以做备忘...

android中自定义下拉框(转)

android自带的下拉框好用不?我觉得有时候好用,有时候难有,项目规定这样的效果,自带的控件实现不了,那么只有我们自己来老老实实滴写一个新的了,其实最基本的下拉框就像一些资料填写时,点击的时候出现在编辑框的下面,然后又很多选项的下拉框,可是我在网上找了一下,没有这种下拉框额,就自己写了一个,看效果图先: ,这个是资料填写的一部分界面,三个下拉框,选择故乡所在地: 点击之后弹出下拉框,选择下面的选项: 三个下拉框时关联的,第一个决定了第二数据内容,第二个决定了第三个数据内容,如果三个全部选好之后

mvc SelectList 给下拉框 @Html.DropDownList绑定值

后台代码: public class DropController : Controller { // GET: Drop public ActionResult Index() { List<Province> list = new List<Province> { new Province{ Id=1,name="山西省"}, new Province{ Id=1,name="广东省"}, new Province{ Id=1,name=

Excel导出下拉框引用数据

namespace WebInfo { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { HSSFWorkbook workbook = new HSSFWorkbook();    HSSFSheet realSheet = (HSSFSheet)workbook.CreateSheet("Sheet xls"); HSS

easy ui 下拉框绑定数据select控件

easy ui 中的下拉框控件叫做select,具体代码如下: html代码:①.这是一个公司等级的下拉框 <tr> <td>公司等级:</td> <td> <select id="CompanyDegree" style="width: 150px;"> </select></td> <td>上级或同级:</td> <td> <input

easyUI中select下拉框添加option选项

使用jquery easyui的下拉列表combobox碰上问题,下拉列表的项都是从 数据库读出来的,然后我想在动态生成的项中添加一项:"<option value=''>=全部=</option>". 但怎么也添加不成功. 首先试了直接用jquery对该下拉列表进行添加操作: JavaScript code ? 1 2 3 4 5 6 7 8 $('#selUnin').combobox({         url: _callback_url + '&

在angular中实现下拉框的两种方式 ng-repeat和 ng-option

1. ng-repeat实现下拉框: select下拉框里option组装成下拉框,这里利用ng-repeat指令来创建 实现源码   <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>AngularJS之下拉框(方式二)</title> <script type="text/javascript" src="

android-theme中修改actionmode中more下拉框的背景颜色

今天在做图库修改是,需要修改图库的actionbar某个按钮弹出来的下拉框的背景颜色,在网上找了个方法尝试下,没有打到自己的要求,不过阴差阳错的却修改了more下拉框的背景,再次记录下,也许以后能用的到. 代码 <style name="Theme.FunuiGallery" parent="android:Theme.Funui"> <item name="listPreferredItemHeightSmall">48

bootstrap中selectpicker下拉框使用方法实例

最近一直在用bootstrap 的一些东西,写几篇博客记录下.... bootstrap selectpicker是bootstrap里比较简单的一个下拉框的组件,先看效果如下: 附上官网api链接,http://silviomoreto.github.io/bootstrap-select/. 下拉框的使用上基本操作一般是:单选.多选.模糊搜索.动态赋值等,下面来看如何使用: 使用方法如下 1.首先需要引入的css和js: bootstrap.css    bootstrap-select.m