简单的MVC实现层叠的Ajax下拉
2011-09-22 09:52
302 查看
项目已经接近尾声了,回顾下之前项目整体实现,运用到技术,总结下。
界面主要以MVC2+jquery来实现,数据存储主要以接口wcf来进行数据传输。整体来看界面中大量运用到jquery,看着那一堆堆js,不知有何冲动,因为之前也接触过3的一些新特性及其有了一点了解,于是写了一个ajax层叠下拉效果,代码很清晰:
1,首先先定义导入jquery库和css,在这里我定义一个_Layout.cshtml页面
2,再定义一个cshtml页面,用于显示,并把之前定义的页面导入该页面
3,接下来定义controller
这里是一post方式提交.最终返回一个视图页面:第一个下拉返回SubCategoriesUserControl.cshtml页面,然后再SubCategoriesUserControl页面上定义
这里用change事件触发下拉,以post方式提交页面数据。这种方式很清楚,也是当成了自定义控件方式来进行调用。第二级的层叠下拉和第一级一样。
代码就不贴上了,
界面主要以MVC2+jquery来实现,数据存储主要以接口wcf来进行数据传输。整体来看界面中大量运用到jquery,看着那一堆堆js,不知有何冲动,因为之前也接触过3的一些新特性及其有了一点了解,于是写了一个ajax层叠下拉效果,代码很清晰:
1,首先先定义导入jquery库和css,在这里我定义一个_Layout.cshtml页面
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>@ViewBag.Title</title> <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> </head> <body> @RenderBody() </body> </html>
2,再定义一个cshtml页面,用于显示,并把之前定义的页面导入该页面
@model MvcApplication1.Models.ProductCatalog @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } <table cellpadding="0" cellspacing="4" border="0"> <tr> <td>第一级 </td> <td> :</td> <td>@Html.Partial("CategoriesUserControl", Model)</td> </tr> <tr> <td>第二级 </td> <td> :</td> <td><div id="SubCategories">@Html.Partial("SubCategoriesUserControl", Model)</div></td> </tr> <tr> <td>第三级 </td> <td> :</td> <td><div id="Products">@Html.Partial("ProductsUserControl", Model)</div></td> </tr> </table>
3,接下来定义controller
[HttpPost] public ActionResult SelectCategory(int? selectedCategoryId) { ProductCatalog productCatalog = new ProductCatalog(); productCatalog.SubCategories = new List<SubCategory>(); if (selectedCategoryId.HasValue) { productCatalog.SubCategories = (from s in ProductCatalog.GetSubCategories() where s.CategoryId == selectedCategoryId orderby s.Name select s).ToList(); } return PartialView("SubCategoriesUserControl", productCatalog); }
这里是一post方式提交.最终返回一个视图页面:第一个下拉返回SubCategoriesUserControl.cshtml页面,然后再SubCategoriesUserControl页面上定义
@model MvcApplication1.Models.ProductCatalog @if (Model.SubCategories != null && Model.SubCategories.Count() > 0) { using (Ajax.BeginForm("SelectSubCategory", "CascadingDropDown", new AjaxOptions { UpdateTargetId = "Products" })) { @Html.HiddenFor(m => m.SelectedCategoryId) @Html.DropDownListFor( m => m.SelectedSubCategoryId, new SelectList(Model.SubCategories, "Id", "Name"), string.Empty ) } } <script type="text/javascript"> $('#SelectedSubCategoryId').change(function () { $(this).parents('form').submit(); }); </script>
这里用change事件触发下拉,以post方式提交页面数据。这种方式很清楚,也是当成了自定义控件方式来进行调用。第二级的层叠下拉和第一级一样。
代码就不贴上了,
相关文章推荐
- maven+spring+springmvc+mybatis+ajax 框架下实现简单的聊天室
- jQuery + ASP.NET MVC Ajax的简单实现
- dhl:ASP.NET MVC + Jquery实现Ajax下拉框数据2或3级联动(+用户控件)
- Ajax实现简单下拉选项
- 基于mvc三层架构和ajax技术实现最简单的文件上传
- 简单实现:jquery ajax/jquery.form.js + springmvc上传文件,带进度条
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 一个非常简单的 ASP.NET MVC 示例:长轮询(又叫:反向 AJAX,英文名:Comet)实现
- MVC 页面实现ajax刷新联动下拉列表
- Ajax实现简单下拉选项效果【推荐】
- ASP.NET MVC + Jquery 实现Ajax下拉框数据三级联动
- ajax&json实现二级下拉框联动,简单示例
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
- mvc基于 ajax实现菜单下拉列表
- maven+spring+springmvc+mybatis+ajax 框架下实现简单的聊天室
- MVC中Ajax的简单实现(多种传值方法)
- 不用Ajax实现简单的无刷新级联下拉框
- ASP.NET MVC + Jquery 实现Ajax下拉框数据三级联动
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
- ASP.NET MVC + Jquery 实现Ajax下拉框数据三级联动