前言


最近猛然惊觉(说是猛然,是因为自己工作那么多年,居然不自知、不反省),在开发中,自己碰到一些常用的功能代码块,还是习惯性的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 的绑定,你秒懂了吗的更多相关文章

  1. 重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印

    重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印 一.引言 桌面端系统经常需要对接各种硬件设备,比如扫描器.读卡器.打印机等. 这里介绍下桌面端 ...

  2. WCF编程系列(三)地址与绑定

    WCF编程系列(三)地址与绑定   地址     地址指定了接收消息的位置,WCF中地址以统一资源标识符(URI)的形式指定.URI由通讯协议和位置路径两部分组成,如示例一中的: http://loc ...

  3. IT轮子系列(六)——Excel上传与解析,一套代码解决所有Excel业务上传,你Get到了吗

    前言 在日常开发当中,excel的上传与解析是很常见的.根据业务不同,解析的数据模型也都不一样.不同的数据模型也就需要不同的校验逻辑,这往往需要写多套的代码进行字段的检验,如必填项,数据格式.为了避免 ...

  4. IT轮子系列(三)——如何显示方法名——Swagger的使用(三)

    前言 在上一篇文章IT轮子系列(三)——如何给返回类型添加注释——Swagger的使用(二) 介绍如何使用swashbuckle的时候忽略了一个问题,就是默认创建的API项目在生成文档的时候是没有显示 ...

  5. DropDownList 不能绑定多个值错误!

    ListItem item = new ListItem("--请选择--",""); ddlstPurchaser.Items.Insert(0, item) ...

  6. 重复造轮子系列——基于Ocelot实现类似支付宝接口模式的网关

    重复造轮子系列——基于Ocelot实现类似支付宝接口模式的网关 引言 重复造轮子系列是自己平时的一些总结.有的轮子依赖社区提供的轮子为基础,这里把使用过程的一些觉得有意思的做个分享.有些思路或者方法在 ...

  7. 造轮子系列之RPC 1:如何从零开始开发RPC框架

    前言 RPC 框架是后端攻城狮永远都绕不开的知识点,目前业界比较知名有 Dubbo.Spring Cloud 等.很多人都停留在了只会用的阶段,作为程序猿,拥有好奇心深入学习,才能有效提高自己的竞争力 ...

  8. IT轮子系列(一)——DropDownList 的绑定(二)

    补记: 今天在阅读公司项目代码的时候,发现MVC中的dropdownlist已经封装了数据绑定方式.相对于第一篇文章,这样的方式更简便.简洁.现记录如下: 首先,创建我们的数据模型 如下图: 模型代码 ...

  9. KendoUI系列:DropDownList

    1.基本使用 1>.创建Input <input id="dropDownList" /> <link href="@Url.Content(&q ...

随机推荐

  1. 一步步创建Qt Widget项目+TextFinder案例(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)

     创建一个基于应用的QtWidget应用程序 这个手册描述了怎样使用QtCreater创建个一个小的Qt应用程序,Text Finder.它是Qt工具Text Finder例子的简写版本.这个应用 ...

  2. Hibernate之多对多表,操作实例

    多表操作之多对多关系简介 思路就是: 在数据库底层通过添加中间表来指定关联关系. 在双方的实体中添加一个保存对方的集合 在双方的配置文件中使用set标签和many-to-many标签来进行关联关系的配 ...

  3. [ExtJS5学习笔记]第四节 欢迎来到extjs5-手把手教你实现你的第一个应用

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/38331347 本文作者:sushengmiyan ------------------ ...

  4. UNIX网络编程——客户/服务器程序设计示范(八)

        TCP预先创建线程服务器程序,主线程统一accept 最后一个使用线程的服务器程序设计示范是在程序启动阶段创建一个线程池之后只让主线程调用accept并把每个客户连接传递给池中某个可用线程.  ...

  5. 卸载linux后出现grub rescue怎么办?

    原文转自:http://zhidao.baidu.com/link?url=9e2mOttgV0IJDMml58SFbV-7XOvVzp2jR5l1n3ltFOzX1XAcp5-t-QQPc-Nozy ...

  6. JQuery EasyUI combobox(下拉列表框)

     下拉列表框 继承 $.fn.combo.defaults. 重写 $.fn.combobox.defaults. 组合框显示一个可编辑的文本框和下拉列表,用户选择一个或多个值.用户可以直接输入文 ...

  7. 匿名内部类使用外面的类为什么要用final型

    从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的 为 ...

  8. MySQL数据库内置函数

    mysql数据库中提供了很丰富的函数.mysql函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操作. 简单介绍几类函数的 ...

  9. 《java入门第一季》之UDP协议下的网络编程详解

    首先看一下UDP协议的图解: 可以看到,分为发送端和接收端程序. 直接上代码: 发送端程序: import java.io.IOException; import java.net.DatagramP ...

  10. linux 编译c程序与动态链接库

    linux 下编译c程序与动态链接库 1 动态库h文件和c文件 1.1 h 文件: kaflog4c.h /** * kaflog4c.h */ #include <stdio.h> #i ...