MVC采用Jquery实现局部刷新
该文纯粹属于个人学习,有不足之处请多多指教!
效果图:

单击Detail下面出现详细,效果如下:

为了使操作时两个不同的数据源相互干扰,使用局部视图刷新,代码如下:
首先介绍主页Index代码:
@model IEnumerable<Framework.Models.Customer>
@using Common
<script src="@Url.Content("~/Scripts/My97DatePicker/WdatePicker.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var id;
$(".Detail").live("click", function () {
id = $(this).attr("id");
GetDetails(id);
});
$(".grey").live("click", function () {
$("#page").val($(this).attr("page"));
$("#jqtransform").submit();
}); $(".grey2").live("click", function () {
$("#page2").val($(this).attr("page"));
//alert(id + "," + $("#page2").val());
if (typeof (id) != "undefined") {
GetDetails(id);
}
});
});
function GetDetails(id) {
$.post("/BrowseLog/Detail", { id: id, page: $("#page2").val(), txtStarTime: $("#txtStarTime").val(), txtEndTime: $("#txtEndTime").val() }, function (data) {
$("#AJAXMAIN").html(data);//这里是重点,右侧数据获取后要显示到div中
}, "text");
}
</script>
<div id="rightcontent">
<div id="rightcontent-inner">
<h2>Customer</h2> <form class="jqtransform" action="/BrowseLog/Index" method="post" id="jqtransform"> <div class="rowElem">
<input type="hidden" id="page" value="1" name="page" />
<span class="btnblock btn_title">StarTime:</span>
<input type="text" name="txtStarTime" id="txtStarTime" value="@ViewData["txtStarTime"]" onclick="WdatePicker({ maxDate: '#F{$dp.$D(\'txtEndTime\')||\'%y-%M-%d\'}', lang: 'en', dateFmt: 'yyyy-MM-dd' });"
class="input_length1" style="width: 200px" />
<span class="btnblock btn_title">EndTime:</span>
<input type="text" name="txtEndTime" id="txtEndTime" value="@ViewData["txtEndTime"]" onclick="WdatePicker({ minDate: '#F{$dp.$D(\'txtStarTime\')}', maxDate: '%y-%M-%d', lang: 'en', dateFmt: 'yyyy-MM-dd' });"
class="input_length1" style="width: 200px" />
<input type="submit" value="Search" class="btnblock" />
</div> </form> <table cellspacing="0" cellpadding="0" border="0" class="jqtable">
<tr>
<th>Customer Name</th>
<th>First Name</th>
<th>Last Name</th>
<th>Phone</th>
<th>Email</th>
<th>Login Time</th>
<th>Browser Products</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.CustomerName</td>
<td>@item.FirstName</td>
<td>@item.LastName</td>
<td>@item.Phone</td>
<td>@item.Email</td>
<td>@item.LoginTime</td>
<td>
<input type="button" class="Detail" id="@item.CustomerID" value="Detail"/>
</td>
</tr>
}
</table> <div class="seach_div">@Html.Paging(new { @class = "grey" })</div> <div id="AJAXMAIN">
@{Html.Action("Detail"); }
</div> </div> </div>
Index
接着介绍局部视图Detail代码
@using Common
@model IEnumerable<Framework.Models.CustomersBrowseProducts>
<div class="">Broswe Products Detail</div> <input type="hidden" id="page2" value="1" name="page2" />
<table cellspacing="0" cellpadding="0" border="0" class="jqtable" id="tbDetails">
<tr>
<th>Customer Name</th>
<th>Product Code</th>
<th>Color</th>
<th>CreateDate</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.CustomerName</td>
<td>@item.ProductCode</td>
<td>@item.Color</td>
<td>@item.CreateDate</td>
</tr>
}
</table> <div class="seach_div">@Html.Paging2(new { @class = "grey2" })</div>
Detail
最后就是Controllers代码了
public ActionResult Index(int? page, string txtStarTime, string txtEndTime)
{
……
var list= ……;
return View(list);
} public ActionResult Detail(int? page, string txtStarTime, string txtEndTime, int? id)
{
……
var list= ……;
if (Request.IsAjaxRequest())
return PartialView(list);
else
return null;
}
关键性代码:
$.post("/BrowseLog/Detail",//Url
{ id: id, page: $("#page2").val(), txtStarTime: $("#txtStarTime").val(), txtEndTime: $("#txtEndTime").val() },//参数
function (data) {
$("#AJAXMAIN").html(data);//这里是重点,局部视图数据获取后要显示到div中
},
"text");
<div id="AJAXMAIN">
@{Html.Action("Detail"); }@*局部视图*@
</div>
这样就实现了MVC采用Jquery局部刷新,文章部分内容可能摘自网络,如果侵犯您的权益,请及时联系我,谢谢。
(个人学习中,请多多指教)
MVC采用Jquery实现局部刷新的更多相关文章
- jQuery 定时局部刷新(setInterval)方法总结
来自:http://www.jbxue.com/article/8516.html 1.jQuery 定时局部刷新(setInterval),显示时间的代码. <head> <scr ...
- 使用jquery实现局部刷新DIV
实现页面的定时刷新功能:jquery使用的是jquery-1.8.3.min.js1:定时刷新 A界面的一段代码如下:<script type="text/javascript&quo ...
- jQuery实现局部刷新页面数据绑定
今天遇到了一个问题:怎么样才能做到只刷新页面中的Repeater控件中的数据,在不用UploadPannel的情况下? 试了好多方法,无意间在看jquery文件时发现,使用load()方法即可解决此问 ...
- .net mvc 利用分部视图局部刷新.
页面利于$.Ajax: $(function(){ $("#btnpartview").click(function () { var model = []; model.push ...
- Jquery Mobile局部刷新后js和css失效,需局部渲染
$(function () { $("#submit").click(function(){ var storage = window.localStorage; ...
- spring mvc + ajax上传文件,页面局部刷新
1.点击上传按钮进行如下操作,通过表单名称以及input名称获取相应的值,对于上传的文件,使用.files来获取, 因为包含文件的上传,所以采用FormData的形式来进行数据交互,通过append将 ...
- MVC无刷新分页(即局部刷新,带搜索,页数选择,排序功能)
我查看了很多网站,大部分评论分页都是局部刷新的,可大部分电商商品展示分页都是有刷新页面的,于是我便做了一个商品展示无刷新分页的例子.接下来我就将做一个模仿淘宝已买到的宝贝功能,不过我的是无刷新分页的. ...
- jquery实现页面局部刷新
后台管理中总是使用frameset进行分成部分进行管理,但是感觉很不好用,尤其是页面间调转还要判断window.parent,太令我费神了,于是学习使用XMLHttpRequest进行页面局部刷新.代 ...
- 使用jQuery验证用户名是否存在,达到局部刷新的效果
<%@ page pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
随机推荐
- MySQL优化聊两句
原文地址:http://www.cnblogs.com/verrion/p/mysql_optimised.html MySQL优化聊两句 MySQL不多介绍,今天聊两句该如何优化以及从哪些方面入手, ...
- Java之多态(二)
package test05;import test06.Car1;public class DuoTai_Test02 { /**多个对象,一个形态 * Tiger.Lion.Snake → Ani ...
- SQL-union
集合运算符是对两个集合操作的,两个集合必须具有相同的列数,列具有相同的数据类型(至少能隐式转换的),最终输出的集合的列名由第一个集合的列名来确定.(可以用来连接多个结果)联合(union)与连接(jo ...
- CentOS下Zabbix安装部署及汉化
搭建环境:Centos6.5_x86_64,Zabbix2.4.5,epel 源 服务端: 1.安装开发软件包yum -y groupinstall "Development Tools&q ...
- 【腾讯Bugly干货分享】跨平台 ListView 性能优化
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/FbiSLPxFdGqJ00WgpJ94yw 导语 精 ...
- DevExpress学习系列(控件篇):GridControl的基本应用
一般属性设置 不显示分组框:Gridview->Option View->Show Group Panel=false 单元格不可编辑:gridcontrol -->gridview ...
- ARM的栈指令
ARM的指令系统中关于栈指令的内容比较容易引起迷惑,这是因为准确描述一个栈的特点需要两个参数: 栈地址的增长方向:ARM将向高地址增长的栈称为递增栈(Descendent Stack),将向低地址增长 ...
- JavaScript继承的模拟实现
我们都知道,在JavaScript中只能模拟实现OO中的"类",也就意味着,在JavaScript中没有类的继承.我们也只能通过在原对象里添加或改写属性来模拟实现. 先定义一个父类 ...
- ABP源码分析十七:DTO 自动校验的实现
对传给Application service对象中的方法的DTO参数,ABP都会在方法真正执行前自动完成validation(根据标注到DTO对象中的validate规则). ABP是如何做到的? 思 ...
- MySQL语句学习记录
注意,命令行下,每条语句最后都需要加分号. 1.显示所有数据库 SHOW DATABASES 2.使用某数据库 如mysql数据库 use mysql (sql语句不区分大小写) 3.显示所有表 ...