IT轮子系列(一)——DropDownList 的绑定,你秒懂了吗
前言
最近猛然惊觉(说是猛然,是因为自己工作那么多年,居然不自知、不反省),在开发中,自己碰到一些常用的功能代码块,还是习惯性的baidu,然后copy....这样的操作,不知自己重复了多少遍。现在回想起来,其实每一次在网上搜索查找代码块,都耗费了自己一定的时间、精力。
既然如此,自己为什么不总结、汇总这些常用的轮子呢,又,为什么要一遍一遍的消耗时光?
一个字,懒!
懒的动手,怕麻烦。
出来混,总是要混的。
现在到自己还的时候了。
第一个款轮子——select 或者叫 Html.DropDownList
直接上代码:
 @{
     Layout = null;
 }
 @using PartyInvites.Models
 @model School 
 <!DOCTYPE html>
 <html>
 <head>
     <meta name="viewport" content="width=device-width" />
     <script src="~/Content/js/jquery-3.2.1.min.js"></script>
     <title>select 轮子的使用</title>
 </head>
 <body>
     <div>
         <h1>
             第一种绑定Html.DropDownList
         </h1>
         @{
             var schoolList = (List<School>)ViewData["SchoolList"];
             var list = new SelectList(schoolList.AsEnumerable(), "Id", "Name");
             @Html.DropDownList("SchoolList", list,"请选择");
         }
     </div>
     <div>
         <h2>
             第二种绑定Html.DropDownList<span style="color:red">给定默认值</span>
         </h2>
         @{
             var secondeList = new SelectList(schoolList.AsEnumerable(), "Id", "Name", Model.Id);
                 /*
                  注意 当使用Model.Id 绑定默认值,Html.DropDownList 方法中的第一个参数名 不能与
                  * ViewData["名字"] 一样,否则无法显示默认值。不懂什么原因
                  */
             @Html.DropDownList("SecondList", secondeList, "请选择默认值");
         }
     </div>
     <div>
         <h3>
             第三种绑定html select控件
         </h3>
         @*
         这里使用到jquery库
         *@
         <select id="selSchool">
         </select>
     </div>
 </body>
 </html>
 <script type="text/javascript">
     $(function () {
         //页面加载完成执行
         bindSchooList();
     });
     function bindSchooList() {
         $.ajax({
             url: 'Home/BindSchool',
             type:"POST",
             success: function (data) {
                 $("#selSchool").empty();//清空绑定的列表
                 $("#selSchool").append("<option value='0'>请选择</option>");//设置首项
                 //遍历json数据源
                 var options = "";
                 $.each(data.SchoolList, function (indx, item) {
                     options += "<option value='" + item.Id + "'>" + item.Name + "</option>";
                 });
                 //追加html options 到select
                 $("#selSchool").append(options);
                 //设置默认值
                 $("#selSchool").val(data.DefaultValue);
             },
             error: function (data) {
             }
         });
     }
 </script>
界面代码
using PartyInvites.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace PartyInvites.Controllers
{
public class HomeController : Controller
{
//声明数据源
//实际可从数据库查询返回
public List<School> schoolList = new List<School>() {
new School{Id=,Name="山东大学"},
new School{Id=,Name="济南大学"}
}; public ViewResult Index()
{
//传数据源到view
ViewData["SchoolList"] = schoolList; School shool = new School();
//页面根据这个id 显示下拉选中的值
//可按实际给定
shool.Id = ; //页面绑定强类型
return View(shool);
}
/// <summary>
/// 第三种方法
/// 绑定到html select 控件
/// </summary>
/// <returns></returns>
public ActionResult BindSchool()
{
var obj = new
{
SchoolList = schoolList,//数据源
DefaultValue = //默认值
};
return Json(obj);
}
}
}
后台代码
项目是用vs2013,新建mvc empty模版项目的。
IT轮子系列(一)——DropDownList 的绑定,你秒懂了吗的更多相关文章
- 重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印
		重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印 一.引言 桌面端系统经常需要对接各种硬件设备,比如扫描器.读卡器.打印机等. 这里介绍下桌面端 ... 
- WCF编程系列(三)地址与绑定
		WCF编程系列(三)地址与绑定 地址 地址指定了接收消息的位置,WCF中地址以统一资源标识符(URI)的形式指定.URI由通讯协议和位置路径两部分组成,如示例一中的: http://loc ... 
- IT轮子系列(六)——Excel上传与解析,一套代码解决所有Excel业务上传,你Get到了吗
		前言 在日常开发当中,excel的上传与解析是很常见的.根据业务不同,解析的数据模型也都不一样.不同的数据模型也就需要不同的校验逻辑,这往往需要写多套的代码进行字段的检验,如必填项,数据格式.为了避免 ... 
- IT轮子系列(三)——如何显示方法名——Swagger的使用(三)
		前言 在上一篇文章IT轮子系列(三)——如何给返回类型添加注释——Swagger的使用(二) 介绍如何使用swashbuckle的时候忽略了一个问题,就是默认创建的API项目在生成文档的时候是没有显示 ... 
- DropDownList 不能绑定多个值错误!
		ListItem item = new ListItem("--请选择--",""); ddlstPurchaser.Items.Insert(0, item) ... 
- 重复造轮子系列——基于Ocelot实现类似支付宝接口模式的网关
		重复造轮子系列——基于Ocelot实现类似支付宝接口模式的网关 引言 重复造轮子系列是自己平时的一些总结.有的轮子依赖社区提供的轮子为基础,这里把使用过程的一些觉得有意思的做个分享.有些思路或者方法在 ... 
- 造轮子系列之RPC 1:如何从零开始开发RPC框架
		前言 RPC 框架是后端攻城狮永远都绕不开的知识点,目前业界比较知名有 Dubbo.Spring Cloud 等.很多人都停留在了只会用的阶段,作为程序猿,拥有好奇心深入学习,才能有效提高自己的竞争力 ... 
- IT轮子系列(一)——DropDownList 的绑定(二)
		补记: 今天在阅读公司项目代码的时候,发现MVC中的dropdownlist已经封装了数据绑定方式.相对于第一篇文章,这样的方式更简便.简洁.现记录如下: 首先,创建我们的数据模型 如下图: 模型代码 ... 
- KendoUI系列:DropDownList
		1.基本使用 1>.创建Input <input id="dropDownList" /> <link href="@Url.Content(&q ... 
随机推荐
- 程序员必须搞清的概念-equals和=和hashcode的区别
			1. 首先equals()和hashcode的介绍 equals 方法在非空对象引用上实现相等关系: * 自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true. * 对称性:对于 ... 
- ubuntu常用文件搜索命令
			1.find find [搜索路径] [搜索关键字] 比如查找/test中文件名为t5.tmp的文件: 查找根目录下大于100M的文件 注意,这里的204800单位是块,1块=512字节 在根目录下查 ... 
- (一〇六)iPad开发之UIPopoverController的使用
			很多App里都有一种点击显示的悬浮气泡菜单,例如下图: 在iPad上可以使用UIPopoverController实现这个功能,popoverController继承自NSObject而不是UIVie ... 
- Qt中事件分发源代码剖析
			Qt中事件分发源代码剖析 Qt中事件传递顺序: 在一个应该程序中,会进入一个事件循环,接受系统产生的事件,并且进行分发,这些都是在exec中进行的. 下面举例说明: 1)首先看看下面一段示例代码: i ... 
- [译]百里挑一:21个优质Swift开源App
			Mybridge AI根据代码质量和start排名从900多个开源项目中选出21个开源项目. 1:Firefox iOS [Official] Firefox iOS app built in Swi ... 
- OC可点击的两种轮播图效果
			基本上,每一个APP都有一个轮播图的效果展示,一般都是用来展示图片的一些信息,然后可以点击查看或购买,所以在此我将这种轮播图进行了一个类的封装,效果包含两种形式:第一种,来回轮转样式,第二种,一个方向 ... 
- Android项目-高考作文-使用ORMLite抽象公共的Dao层
			1, 定义统一的Dao接口 public interface IDao<T> { public abstract T getSingleById(int id); public abstr ... 
- ios swift模仿qq登陆界面,xml布局
			给大家推荐两个学习的地址: 极客学院的视频:http://www.jikexueyuan.com/path/ios/ 一个博客:http://blog.csdn.net/lizhongfu2013/a ... 
- Web资源认证原理
			Web服务器与浏览器之间的认证流程没有规定的步骤,根据不同的认证模式及鉴权方式可能会有不同的执行步骤.下图用一个最简单的流程了解整个认证过程是如何工作的,首先浏览器向服务器发起请求,然后服务器向浏览器 ... 
- mysql进阶(三)游标简易教程
			mysql游标简易教程 从mysql V5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎.InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键 ... 
