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 ...
随机推荐
- Android触摸屏幕时间-android学习之旅(三)
android的多点触摸是经常遇到的编程技巧,这一篇可以将详细的介绍这个问题. 简单实例 android的触摸需要实现OnTouchListener接口,继承里面方法. 布局代码: <?xml ...
- 当图片验证码遇上JSP
今天看到了一个关于使用JSP方式生成图片验证码 的小例子,感觉真的是很不错,拿来分享一下. 原理 对于图片验证码,我们在审查元素的时候会方便的看出是<img src="#" ...
- hive编程指南——读书笔记(无知拾遗)
set hive.metastore.warehouse.dir=/user/myname/hive/warehouse; 用户设定自己的数据仓库目录.不影响其他用户.也在$HOME/.hiverc中 ...
- 使用TT模板+mvc+wcf实现简单查询
今天是除夕,小编的这篇博客是掐着点儿发的,在此,祝各位小伙伴新年快乐,身体健康,万事如意:喜从天降,欣喜若狂:喜气盈门,好事成双:好人好运,金玉满堂:神采飞扬,如愿以偿,财源滚滚来,福如东海长:伴随着 ...
- GDAL1.11版本对SHP文件索引加速测试
GDAL库中对于矢量数据的读取中可以设置一些过滤器来对矢量图形进行筛选,对于Shapefile格式来说,如果数据量太大,设置这个过滤器时间慢的简直无法忍受.好在GDAL1.10版本开始支持读取Shap ...
- 【shell脚本】mysql每日备份shell脚本
每天固定时间用mysqldump 备份mysql数据. #!/bin/bash #每天早上4点, mysql备份数据 orangleliu #chmod 700 backup.sh #crontab ...
- ROS(indigo)swarm_robot 群机器人示例Gazebo
ROS(indigo)swarm_robot 群机器人示例Gazebo 参考网址:https://github.com/yangliu28/swarm_robot_ros_sim 安装提示:catki ...
- Mysql insert语句的优化
1) 如果你同时从同一客户插入很多行,使用多个值表的INSERT语句.这比使用分开INSERT语句快(在一些情况中几倍). Insert into test values(1,2),(1,3), ...
- Hash冲突解决
hash的冲突不可避免的 1.开放地址法 开放地执法有一个公式:Hi=(H(key)+di) MOD m i=1,2,-,k(k<=m-1) 其中,m为哈希表的表长.di 是产生冲突的时候的增量 ...
- UNIX环境高级编程——select、poll和epoll
一.select select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一. select的一个缺点在于单个进程能够监视的文件描述符的数量 ...