網站首頁 編程語言 正文
遇到了這樣的一個需求:通過勾選checkbox來更改select的內容。
在沒有勾選checkbox之前是這樣的:
在勾選checkbox之后是這樣的:
想通過ajax異步來實現。所以,從控制器拿到的json數據,在控制器中應該先是Dictionary<string, string>類型,然后再轉換成json格式。
在沒有勾選checkbox之前,select中內容對應的Model為:
public class Old
{
public int Id { get; set; }
public string Name { get; set; }
}
在勾選checkbox之后,select中內容對應的Model為:
public class NewItem
{
public int Id { get; set; }
public string Name { get; set; }
}
Home控制器中應該給出對應的json數據。
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult GetOld()
{
var olds = new List<Old>
{
new Old(){Id = 1, Name = "老版本1"},
new Old(){Id = 2, Name = "老版本2"},
new Old(){Id = 3, Name = "老版本3"}
};
IDictionary<string, string> result = new Dictionary<string, string> {{"-1","None"}};
foreach (var item in olds)
{
result.Add(item.Id.ToString(), item.Name);
}
return Json(result, JsonRequestBehavior.AllowGet);
}
public ActionResult GetNew()
{
var news = new List<NewItem>
{
new NewItem(){Id = 1, Name = "新版本1"},
new NewItem(){Id = 2, Name = "新版本2"}
};
IDictionary<string, string> result = new Dictionary<string, string> { { "-1", "None" } };
foreach (var item in news)
{
result.Add(item.Id.ToString(), item.Name);
}
return Json(result, JsonRequestBehavior.AllowGet);
}
}
在Home/Index.cshtml視圖中,根據checkbox是否勾選來呈現不同的內容。
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<div>
<select id="v"></select>
</div>
<div>
<span>是否選擇新版本:</span><input type="checkbox" id="cn"/>
</div>
@section scripts
{
<script type="text/javascript">
$(function () {
//初始獲取老版本
getOldOnes();
//勾選checkbox事件
$('#cn').on("change", function() {
if ($(this).is(':checked')) {
getNewOnes();
} else {
getOldOnes();
}
});
});
//獲取老版本
function getOldOnes() {
$.getJSON('@Url.Action("GetOld","Home")', function(data) {
var $s = $('#v');
$s.children().remove();
$.each(data, function(key, value) {
$s.append('<option value="' + key + '">' + value + "</option>");
});
$s.effect('shake', { times: 4 }, 100);
});
}
//獲取新版本
function getNewOnes() {
$.getJSON('@Url.Action("GetNew","Home")', function (data) {
var $s = $('#v');
$s.children().remove();
$.each(data, function (key, value) {
$s.append('<option value="' + key + '">' + value + "</option>");
});
$s.effect('shake', { times: 4 }, 100);
});
}
</script>
}
原文鏈接:https://www.cnblogs.com/darrenji/p/4367696.html
相關推薦
- 2022-09-10 Oracle數據泵實現不同用戶導入導出表級_oracle
- 2022-08-10 Pandas?sample隨機抽樣的實現_python
- 2022-03-30 python怎么使用xlwt操作excel你知道嗎_python
- 2022-09-19 golang圖片處理庫image基本操作_Golang
- 2024-01-29 在springboot多數據源項目中創建多個事務(解決@Transactional影響切換數據源問題
- 2022-01-20 淺談關于 && , || , ? : , ?? , ?. 的運算方式以及用法
- 2022-09-23 Kotlin中空判斷處理操作實例_Android
- 2022-04-30 Python中類變量和實例變量的區別_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支