[MVC4-基礎] 連動DropDownList - 使用jQuery、JSON
剛開始學MVC4,以下是一些基礎的學習筆記!
先展示一下結果:
1.選擇申請部門

2.選好後申請部門鎖住防止USER修改並載入該部門所擁有的設備類型

一、資料庫
dept

mf_fx

二、View (Index.cshtml)
@model IEnumerable<LES.Models.Repair>
@{
ViewBag.Title = "Index";
}
<script type="text/javascript">
$(document).ready(function () {
$(".DropDownList").append("<option value='Value'>請選擇</option>"); //預設都加入「請選擇」
$(".DropDownList").change(function () {
//讓下拉選單選中即關閉
$(this).attr("disabled", true);
//取出元素ID
var id = $(this).attr('id');
//根據選中的元素執行相對應的動作
switch (id) {
case "dept": {
//選擇部門後把設備類型資料載入
$(function () {
$.getJSON("/Repair/GetDeviceType?dept=" + dept.value, null, function (data) {//向Controller取得GetDeviceType資料
$.each(data, function (i, itemvalue) {//循環加入item
$("#deviceType").append(
$("<option></option>").val(itemvalue.Value).html(itemvalue.Text))
});
});
});
break;
}
case "deviceType": {
//選擇設備類型後把設備編號資料載入
$(function () {
$.getJSON("/Repair/GetDeviceId?dept=" + dept.value + "&type=" + deviceType.value, null, function (data) {//向Controller取得GetDeviceId資料
$.each(data, function (i, itemvalue) {//循環加入item
$("#deviceId").append(
$("<option></option>").val(itemvalue.Value).html(itemvalue.Text))
});
});
});
break;
}
}
});
});
$(function () {
$.getJSON("/Repair/GetDept", null, function (data) {//向Controller取得GetDept資料
$.each(data, function (i, itemvalue) {//循環加入item
$("#dept").append(
$("<option></option>").val(itemvalue.Value).html(itemvalue.Text))
});
});
});
</script>
<h2>維修申請單</h2>
<p>
@Html.Label("dept","申請部門")
<select class="DropDownList" id="dept" name="dept"></select>
<br />
@Html.Label("deviceType","設備類型")
<select class="DropDownList" id="deviceType" name="deviceType"></select>
<br />
</p>
三、Controller (RepairController.cs)
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using LES.Models;
using System.Data.SqlClient;
using System.Configuration; namespace LES.Controllers
{
public class RepairController : Controller
{
string ErpString = ConfigurationManager.ConnectionStrings["ERPConnection"].ConnectionString; //
// GET: /Repair/ public ActionResult Index()
{ SqlConnection DbErp = new SqlConnection(ErpString); //創建資料庫連線
SqlCommand cmd = new SqlCommand("select dep,name from dept",DbErp); //輸入SQL命令
DbErp.Open(); //開啟資料庫連線 var reader = cmd.ExecuteReader(); //取出結果集 List<SelectListItem> depts = new List<SelectListItem>(); while(reader.Read()){ //逐筆讀出資料寫入List
//(0)=dep ; (1)=name
depts.Add(new SelectListItem { Text = reader.GetString(), Value = reader.GetString()});
} DbErp.Close(); //關閉資料庫連線 ViewBag.DeptType = depts; return View();
} // GET: /Repair/GetDept
public JsonResult GetDept()
{
SqlConnection DbErp = new SqlConnection(ErpString); //創建資料庫連線
SqlCommand cmd = new SqlCommand("select dep,name from dept", DbErp); //輸入SQL命令
DbErp.Open(); //開啟資料庫連線 var reader = cmd.ExecuteReader(); //取出結果集 List<SelectListItem> depts = new List<SelectListItem>(); while (reader.Read())
{ //逐筆讀出資料寫入List
//(0)=dep ; (1)=name
depts.Add(new SelectListItem { Text = reader.GetString(), Value = reader.GetString() });
} DbErp.Close(); //關閉資料庫連線 return this.Json(depts, JsonRequestBehavior.AllowGet);
} // GET: /Repair/GetDeviceType?dept=部門代號
public JsonResult GetDeviceType(string dept)
{
SqlConnection DbErp = new SqlConnection(ErpString); //創建資料庫連線
DbErp.Open(); //開啟資料庫連線
SqlCommand cmd = DbErp.CreateCommand(); //創建命令物件
cmd.CommandText = "select distinct name from mf_fx where dep = @dept"; //SQL語句
cmd.Parameters.AddWithValue("dept", dept); //加入@dept參數 var reader = cmd.ExecuteReader(); //取出結果集 List<SelectListItem> types = new List<SelectListItem>(); while (reader.Read())
{ //逐筆讀出資料寫入List
//(0)=name
types.Add(new SelectListItem { Text = reader.GetString(), Value = reader.GetString() });
} DbErp.Close(); //關閉資料庫連線 return this.Json(types, JsonRequestBehavior.AllowGet);
}
}
}
後來更新一下代碼,新的初始狀態如下:

[MVC4-基礎] 連動DropDownList - 使用jQuery、JSON的更多相关文章
- jQuery基礎知識
jQuery基礎知識 $(function(){}) //jQuery先執行一遍再執行其他函數 $(document).ready(fn) //文檔加載完後觸發 1. 刪除$:jQuery.noCon ...
- BootStrap基礎知識
BootStrap基礎知識 1. .lead //突出 .text-left //文字居左 .text-right //文字居右 .text-center //文字居中 .text-justify / ...
- CSS1-3基礎知識
CSS1-3基礎知識 1.css排版 css在html內排版: <style type='text/css'> 標記名{} .類型名{} #ID名{} 標記名,.類型名,#ID名{} &l ...
- Python 基礎 - if else流程判斷
hmm~前面講了那麼多,終於可以稍稍的正式進入另一個階段,沒錯,要開始寫判斷式了 這次先從最簡單的判斷式開始,if else 開始- Go 首先,之前有寫有一個簡單的互動式 用戶輸入 的代碼,忘記了嗎 ...
- GO語言基礎教程:序章
首先自我介紹一下我自己,我是一個coder,目前主要從事B/S程序開發工作,懂點PHP;ASP;JSP;JS;VB;C;DELPHI;JAVA,另外知道幾個數據庫,除此之外別無所長,那麼我為何會選擇學 ...
- JavaScript基礎知識
JavaScript基礎知識 1.標籤組使用 <script charset='utf-8' //設置字元集 defet //使腳本延遲到文檔解析完成,Browser已忽略 language=' ...
- 邁向IT專家成功之路的三十則鐵律 鐵律八:IT人學習之道-基礎功
修練過中國武術的人都知道,任何一種拳法的學習最重要的就是基礎功,而基礎功又可分為內在與外在的修練,內在的修練強調在平心.靜氣.不爭的調息.至於外在這首重在站樁.鬆沉.不疾不徐的應對能力.有了深厚基礎的 ...
- 基于Bootstrap的DropDownList的JQuery组件的完善版
在前文 创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件 中,实现了DropDownList的JQuery组件,但是留有遗憾.就是当下拉菜单出现滚动条的时候,滚动条会覆 ...
- 创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
Bootstrap是当下流行的前端UI组件库之一.利用Bootstrap,可以很方便的构造美观.统一的页面.把设计师从具体的UI编码中解放出来. Bootstrap提供了不少的前端UI组件.带下拉 ...
随机推荐
- Sass函数--数字函数
数字函数简介 Sass 中的数字函数提要针对数字方面提供一系列的函数功能: percentage($value):将一个不带单位的数转换成百分比值: round($value):将数值四舍五入,转换成 ...
- ASP.net 前台页面通过ID获取控件
asp.net的服务器控件的ID通常只能在服务器端很好的识别,客户端需要通过ClientID获得控件 1.通过js获得 var controlID = "<%=controlID. ...
- TableView基本使用
TableView基本使用 基本步奏 1设置数据源 self.tableview.dataSource = self; 2遵守协议 @interface ViewController () <U ...
- SQL SERVER 分页方法
最近项目中需要在SQL SERVER中进行分页,需要编写分页查询语句.之前也写过一些关于分页查询的语句,但是性能不敢恭维.于是在业务时间,在微软社区Bing了一篇老外写的关于SQL SERVER分页的 ...
- poj1988 简单并查集
B - 叠叠乐 Crawling in process... Crawling failed Time Limit:2000MS Memory Limit:30000KB 64bit ...
- mysql索引之唯一索引
mysql 的唯一索引一般用于不重复的字段,一般会把表中的id设为唯一索引,创建唯一索引的目的不是为了提高查询速度,而是为了避免数据重复,注意:唯一索引可以有多个,但是列值必须唯一,创建唯一索引使用关 ...
- ie6下:png图片不透明 和 背景图片为png的节点的内部标签单击事件不响应
1.png图片不透明 少量图片时:使用滤镜: _background:none; _filter:prodig:DXImageTransform.Microsoft.AlphaImageLoader( ...
- 《python基础教程》笔记之 更加抽象
方法.函数和特性 函数和方法的区别在于self参数,方法(绑定方法)将它们的第一个参数帮顶到所属的实例上,因此这个参数可以不必提供.可以将特性绑定到一个普通函数上,这样就不会有特殊的self参数了,换 ...
- css 设置字体
CSS,font-family,好看常用的中文字体 例1(小米米官网):font-family: "Arial","Microsoft YaHei"," ...
- OC .(点)与->(箭头)用法区别
这两天同学总是问OC里.和->的用法区别,当时回答的不是很好,周末查了一下,大概清楚了,在这里记录一笔. 先看这个例程 #import <Foundation/Foundation.h&g ...