剛開始學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的更多相关文章

  1. jQuery基礎知識

    jQuery基礎知識 $(function(){}) //jQuery先執行一遍再執行其他函數 $(document).ready(fn) //文檔加載完後觸發 1. 刪除$:jQuery.noCon ...

  2. BootStrap基礎知識

    BootStrap基礎知識 1. .lead //突出 .text-left //文字居左 .text-right //文字居右 .text-center //文字居中 .text-justify / ...

  3. CSS1-3基礎知識

    CSS1-3基礎知識 1.css排版 css在html內排版: <style type='text/css'> 標記名{} .類型名{} #ID名{} 標記名,.類型名,#ID名{} &l ...

  4. Python 基礎 - if else流程判斷

    hmm~前面講了那麼多,終於可以稍稍的正式進入另一個階段,沒錯,要開始寫判斷式了 這次先從最簡單的判斷式開始,if else 開始- Go 首先,之前有寫有一個簡單的互動式 用戶輸入 的代碼,忘記了嗎 ...

  5. GO語言基礎教程:序章

    首先自我介紹一下我自己,我是一個coder,目前主要從事B/S程序開發工作,懂點PHP;ASP;JSP;JS;VB;C;DELPHI;JAVA,另外知道幾個數據庫,除此之外別無所長,那麼我為何會選擇學 ...

  6. JavaScript基礎知識

    JavaScript基礎知識 1.標籤組使用 <script charset='utf-8' //設置字元集 defet //使腳本延遲到文檔解析完成,Browser已忽略 language=' ...

  7. 邁向IT專家成功之路的三十則鐵律 鐵律八:IT人學習之道-基礎功

    修練過中國武術的人都知道,任何一種拳法的學習最重要的就是基礎功,而基礎功又可分為內在與外在的修練,內在的修練強調在平心.靜氣.不爭的調息.至於外在這首重在站樁.鬆沉.不疾不徐的應對能力.有了深厚基礎的 ...

  8. 基于Bootstrap的DropDownList的JQuery组件的完善版

    在前文 创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件 中,实现了DropDownList的JQuery组件,但是留有遗憾.就是当下拉菜单出现滚动条的时候,滚动条会覆 ...

  9. 创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件

    Bootstrap是当下流行的前端UI组件库之一.利用Bootstrap,可以很方便的构造美观.统一的页面.把设计师从具体的UI编码中解放出来.   Bootstrap提供了不少的前端UI组件.带下拉 ...

随机推荐

  1. javascript 实现jsonp

    jsonp原理其实也简单,虽然ajax不能跨域,但是通过src这个属性我们可以实现跨域,其实和我们引入第三方jquery调用它的方法一样的. html: <!DOCTYPE html> & ...

  2. u盘启动盘制作工具

    u盘启动盘制作工具http://www.dabaicai.biz/ 系统镜像文件下载:http://xt.qingdiangongsi.cn/xtxz/

  3. 使用UISegementControl实现简易汤姆猫程序

    // // TomViewController.m #import "TomViewController.h" #import <AVFoundation/AVFoundat ...

  4. uva 10929 - You can say 11

    #include <cstdio> using namespace std; ]; int main() { while(gets(in)) { ] == ] == ) break; ; ...

  5. PHP扩展开发(3)-config.m4

    1. 宏命令 1.1. dnl 注释      1.2. 扩展的工作方式           1.2.1) PHP_ARG_WITH不需要第三方库           1.2.2) PHP_ARG_E ...

  6. JavaScript加密解密压缩工具

    <script> a=62; function encode() { var code = document.getElementById('code').value; code = co ...

  7. About abstract class.

    Abstract means should be realized. Virtual means could be overrided. It is very different!

  8. Java如何从HttpServletRequest中读取HTTP请求的body

    首先贴出原文地址,尊重原作者 http://blog.csdn.net/zxygww/article/details/47045055 注意:下面方法已验证通过. HTTP请求中的是字符串数据: // ...

  9. cf B. Valera and Contest

    http://codeforces.com/contest/369/problem/B 先对k个处理,先处理sk%k个为sk/k+1,如果sk/k==0,k个数都为sk/k:对与剩下的数也按照同样的方 ...

  10. CCI_chapter 16 Low level

    16.5 Write a program to find whether a machine is big endian or little endian Big-Endian和Little-Endi ...