MVC3----使用Jquery模板异步加载数据

*首先需要安装JQuery模板(右键引用->管理NuGet程序包->搜索jquery.templates->安装)

--引用脚本

<script type="text/javascript" src="@Url.Content("~/Scripts/jQuery.tmpl.min.js")"></script>

--控制器代码:

public ActionResult QuickSearch(string term)
{
     var list = db.Demos.Where(r => r.Name.Contains(term)).Select(r => r).ToList();
     return Json(list, JsonRequestBehavior.AllowGet);
}

--视图代码:

①:

<script type="text/javascript">
    $(function () {
        //表单提交触发
        $("#personsearch").submit(function (event) {
            event.preventDefault(); //重要(阻止直接提交)
            var form = $(this);
            $.getJSON(form.attr("action"), form.serialize(), function (data) {
                $("#personTemplate").tmpl(data).appendTo("#data-ul");
            });
        });
    });
</script>

<!--表单-->
<form id="personsearch" method="get" action="@Url.Action("QuickSearch", "PersonError")">
    <input type="text" name="term" />
    <input type="submit" value="提交" />
    <img id="img" src="@Url.Content("~/Content/img/017.gif")" style="display:none" />
</form>

<!--模板-->
<script type="text/x-jquery-tmpl" id="personTemplate">
    <li>${Name}</li>
</script>

<!--容器-->
<div id="searchresults">
    <ul id="data-ul"></ul>
</div>

②:使用ajax控制请求的过程(比如加载中显示加载动态,加载失败弹出提示框等等)

<script type="text/javascript">
    $(function () {
        //表单提交触发
        $("#personsearch").submit(function (event) {
            event.preventDefault(); //重要(阻止直接提交)
            var form = $(this);
            $.ajax({
                url: form.attr("action"),//链接
                data: form.serialize(),//数据
                beforeSend: function () { $("#img").show(); },//开始请求(加载动画)
                complete: function () { $("#img").hide(); },//请求完成
                error: function () { alert("失败"); },//请求失败
                success: function (data) {//请求成功
                    $("#personTemplate").tmpl(data).appendTo("#data-ul");
                }
            })
        });
    });
</script>

<!--表单-->
<form id="personsearch" method="get" action="@Url.Action("QuickSearch", "PersonError")">
    <input type="text" name="term" />
    <input type="submit" value="提交" />
    <img id="img" src="@Url.Content("~/Content/img/017.gif")" style="display:none" />
</form>

<!--模板-->
<script type="text/x-jquery-tmpl" id="personTemplate">
    <li>${Name}</li>
</script>

<!--容器-->
<div id="searchresults">
    <ul id="data-ul"></ul>
</div>

时间: 2024-10-11 18:43:42

MVC3----使用Jquery模板异步加载数据的相关文章

SpringMVC+Jquery -页面异步加载数据

背景: 做项目时涉及到页面,当我打算在controller中传一个list到页面,然后通过<c:foreach>循环遍历出来时,同事说:你这样每次都要刷新,这都是几百年前使用的技术了.你用post实现异步加载数据.然后就...... ResultUtil.java 工具类: package com.sgcc.uds.fs.config.web.util; import java.util.HashMap; import java.util.Map; import net.sf.json.JSO

bootstrap jQuery Ztree异步加载数据,check选择&amp;可添加、修改、删除节点

效果图: 一.下载zTree插件 地址:http://www.ztree.me 二.html代码 <link href="../Scripts/zTree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" /> <script src="../Scripts/zTree/js/jquery-1.4.4.min.js"></script> <script src

jQuery异步加载数据添加事件

几个月前在一个项目中涉及到树形栏,然后看了很多插件,觉得有点麻烦,于是自己写了一个,写着写着就出问题了.当时项目是通过树形栏进行权限控制的,管理员可以对从数据库去的数据动态生成树形栏进行增删改查操作,可是用$(".XX").click();方法是不行的.1.之前用的是jq1.4.3 ,jq1.7一下都可以使用live()方法,来实现该功能 $('#div').live('click',function(){ //do stuff }); 但是live方法也有不支持的事件,例如:togg

淘宝购物车页面 智能搜索框Ajax异步加载数据

如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区非常的活跃,许多朋友都在不同地方分享了很多优秀的插件.我在相关的网站上找过想实现类似功能的插件,但是没有找到.于是乎,自己动手丰衣足食.自己来搭建智能搜索框下拉列表.当然,如果有类似功能并且常维护Bug的插件,望留言交流. 源码地址: 淘宝购物车页面--PC端和移动端项目实战 首先需要先给大家打一根

Highcharts 基本曲线图;Highcharts 带有数据标签曲线图表;Highcharts 异步加载数据曲线图表

Highcharts 基本曲线图 实例 文件名:highcharts_line_basic.htm <html> <head> <meta charset="UTF-8" /> <title>Highcharts 教程 | 菜鸟教程(runoob.com)</title> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js&quo

使用ajax异步加载数据

使用ajax异步加载数据 controller为User赋值 @RequestMapping("/a2") public List<User> a2() { List<User> userlist = new ArrayList<User>(); userlist.add(new User("大头儿子", 6, "男")); userlist.add(new User("小头爸爸", 30,

iScroll.js 向上滑动异步加载数据回弹问题

iScroll是一款用于移动设备web开发的一款插件.像缩放.下拉刷新.滑动切换等移动应用上常见的一些效果都可以轻松实现. 现在最新版本是5.X,官网这里:http://iscrolljs.com/ 下面是按照官网给的Demo,写的一个异步加载数据实例: 1 <title>iScroll demo: click</title> 2 <script src="~/Scripts/iscroll5/jquery-1.10.2.js"></scrip

Android利用Volley异步加载数据完整详细示例(二)

MainActivity如下: package cc.y; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.os.Bundle; import android.util.LruCache; import android.widget.ImageView;

Android利用Volley异步加载数据完整详细示例(一)

MainActivity如下: package cc.cn; import java.util.HashMap; import org.json.JSONObject; import android.app.Activity; import android.content.Context; import android.os.Bundle; import com.android.volley.AuthFailureError; import com.android.volley.RequestQ