MVC+Jquery开发B/S系统 (一) 列表绑定(三)

除了绑定Table外,还有其他的循环列表需要绑定。

其实都一样,都是把模版化成数据。模板的存法用注释的方式只是一种方法。更好的方法自由发挥 。目前就是为了取得模板。

比如 用一个Json来存放需要的Template,然后专门放在一个templates.js里或由xml配置的模板然 后生成json数据, 需要用的时候直接 templates.tempName 就可以了。

写博文太累了。特别是自己的思想给别人分享时更累。我这里也不赘述了。贴下代码吧

代码

; (function($) {    var templateList = []; //存放一般的模板列表

$.fn.bindList = function(args, template, options, async) {        var me = this;

var url, async, template, dataSource;

url = me.attr("datasource");        async = me.attr("async") == "0";        if (arguments.length > 0) {            switch (typeof (args)) {                case "string":                    url = args;                    break;                case "object":                    dataSource = args;                    break;            }        }        //args是json        switch (arguments.length) {            case 1:                if (args == null)                    return me;                if (typeof (args) == "string") {                    url = args;                }                else if (typeof (args) == "object") {                    url = args.url;                    async = args.async || async;                    template = args.template || template;                    options = args.options || options;                    dataSource = args.data;                }                break;            case 2: // url,async || url,tempalte || data,template                if (typeof (arguments[0]) == "string")                    url = arguments[0];                else                    dataSource = arguments[0];

if (typeof (arguments[1]) == "bool") {                    async = arguments[1];                    template = me.getTemplate();                }                break;            case 3: //url,template,async || url,template,options || data,template,options                template = template;                options = options;                if (typeof (options) == "bool") {                    async = options;                    options = undefined;                } break;            case 4:                template = template;                options = options;                async = async;                break;        }

if ((url == undefined || url == "") && dataSource == undefined) {            return me;        }

if (dataSource == undefined) {            $.ajax({                type:"POST",                async: async,                url: url,                success: function(data) {

if (data == "" || data == null)                        return;                    data = eval("(" + data + ")");

me.bindListData(data.list || data, template, options);                }            });        }        else {            me.bindListData(dataSource, template, options);        }        return me;    };    $.fn.bindListData = function(data, template, options) {

var me = this;        template = template || me.getTemplate();        this.empty();        var resultTemplate = replaceTemplate(template, data);

var prepend, append, dvalue;        if (options != undefined) {            prepend = options.prepend;            append = options.append;            dvalue = options.dvalue;        }

if (prepend != undefined) {            resultTemplate = prepend + resultTemplate;        }

if (append != undefined) {            resultTemplate += append;        }

this.html(resultTemplate);

//绑定控件的默认值        if (this.attr("type") == "select-one") {            if (dvalue != undefined)                this.bindControl(dvalue);            else                this[0].selectedIndex = 0;        }

me.setLink();

};

})(jQuery);

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索template
, data
, undefined
, args
, async
, Options
, prepend
prepend()
mvc绑定下拉列表、jquery 绑定下拉列表、jquery mvc、spring mvc jquery、asp.net mvc jquery,以便于您获取更多的相关知识。

时间: 2024-11-03 20:48:03

MVC+Jquery开发B/S系统 (一) 列表绑定(三)的相关文章

MVC+JQuery开发B/S系统 (二) 表单绑定

逻辑比较复杂的Form绑定起来比较麻烦,这些都是要自己写代码.而简单的我们可以写一个通用的 进行处理.不需要反复的 xxx.Text = "xxx" .. MVC有自己的自动映射功能,我们这 里用jQuery来遍历Controls进行绑定. 如果用过asp开发过系统的人都知道以前取表单的值都是 request.form("controlName"),用到的是name而不是id. 所以我们的表单在制作的 时候元素的Name值不能没有. 为了能够写通用的方法,我们约定所

MVC+Jquery开发B/S系统 (一) 列表绑定(二)

其实挂MVC只在上一节有说道,我还是只写Jquery数据绑定吧. 我不知道别人是否使用过我 这种绑定方法,这是我想出来的.所以一个人的想法会不会被别人所接受那是别人的看法.我只是分享 下自己的方法. 当然,个人能力有限,愚昧的地方还望指出. 首先 试想写这个方法或 者说绑定一个列表时需要碰到哪些问题? 如何在这个方法里解决大多数列表的问题? Ⅰ.如何 分页? Ⅱ.绑定的是Url请求还是Array? Ⅲ.列表加载后需要做什么处理? Ⅳ. 其他的问题... 我们把绑定Table的方法写成一个Jque

MVC+Jquery开发B/S系统 (一) 列表绑定

OK,今天看到首页一篇MVC+JS的文章.最近我在用这两样东西. 发一下自己在应用中的应用方法. 我们想,WebForm绑定列表有repeater和Gridview ,如果用MVC我们还用控件当然不是不行,就 是有点说不过去了吧?(啥子说不过去?) 控件既然如此方便.我们就用Js来实现简单的控件绑 定. 这里都是用到的Jquery.如果有人觉得不爽,请立即停止阅读. 请思考下面三个问题: Ⅰ如何表达一个控件?ItemTemplate如何表示? Ⅱ有了模板如何执行替换? Ⅲ 如何得到模板需要的Da

MVC+Jquery开发B/S系统 (三) 表单提交

说起表单提交,是无人不知,无人不晓哇.今天我们就谈如何用JQuery+MVC来处理表单的提交. 想达到的效果: 1.提交前的表单验证 2.表单验证 3.提交后的反馈信 息 ok,先说一下工作的原理. 前台<form action='xxx.aspx' method='post'></form>,action指定了接受表单的处理页面.method这里我们只说 post 如果用ajax提交表单,自然xxx.aspx便是请求的url.ajax请求后的callback便是响应表单 的提交结

中大型系统架构组合之EF4.1+ASP.NET MVC+JQuery

EF4.1已经推出有一段时间了,它给人的第一吸引力就是比LINQ TO SQL更加适合大型项目,它的封装更加紧密,操作也更加灵活,而且弥补了LINQ To SQL的最大不足,可以支持多种数据库.   EF4.1+ASP.NET MVC+JQuery 第一先说一下EF4.1: 我们数据层OR/Mapping采用EF4.1来实现数据的持久化 我们必须要对EF4.1进行一个封装,把对数据的操作限制在DATA层,不能向上一层暴露太多实现的细节,这样作是安全的,层次分明的. 对数据操作有一个泛型接口来实现

[读后感]spring Mvc 教程框架实例以及系统演示下载

[读后感]spring Mvc 教程框架实例以及系统演示下载 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 不要好意思,昨晚写的,睡着忘发了,后附是篇好文,赶紧w分享一下. 感脚着,俺好像做了

用SignalR 2.0开发客服系统[系列3:实现点对点通讯]

原文:用SignalR 2.0开发客服系统[系列3:实现点对点通讯] 前言 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 真的很感谢大家的支持,今天发表系列3,我们的正菜马上就要来了..     开发环境  开发工具:VS2013 旗舰版  数据库:未用  操作系统:WIN7旗舰版   正文开始 首先我们来看看实现的效果:   所用到的方法和类(重要): 其实细心的朋友应该早就发现了,在上篇博客我们就已经用到了这

用SignalR 2.0开发客服系统[系列2:实现聊天室]

原文:用SignalR 2.0开发客服系统[系列2:实现聊天室] 前言 上周发表了 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 这篇文章,得到了很多帮助和鼓励,小弟在此真心的感谢大家的支持.. 这周继续系列2,实现聊天室的功能.     开发环境  开发工具:VS2013 旗舰版  数据库:未用  操作系统:WIN7旗舰版   正文开始 首先我们来看看最终效果:       正式开始: SignalR作为一个强大的集线器,已经在hub里面集成了Gorups,也就是分组管理,使用

jQuery开发团队:JQUERY 1.8 BETA 1新功能

文章简介:jQuery开发团队今天发布了1.8的首个测试版本. jQuery开发团队今天发布了1.8的首个测试版本. 该版本引入了大量的新特性,包括: 1. 模块化 在jQuery 1.8中,您可以移除一些不需要的模块,以构建一个专属的jQuery版本.通过基于grunt的新构建系统,你可以轻松实现该功能.可以移除的模块包括ajax.css.dimensions.effects和offset.更多信息可参阅README file. 2. 根据浏览器为CSS属性加前缀 某些CSS属性前带有供应商前