热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Repeater中绑定转化JSON格式的字段

有时我们希望Repeater中显示的信息是根据字段的内容来确定的,而不是直接显示字段本身的值,今天将为大家说明如何通过字段表达式来处理绑定的字段.由于精力有限,不能在多个博客中保证

时我们希望 Repeater 中显示的信息是根据字段的内容来确定的, 而不是直接显示字段本身的值, 今天将为大家说明如何通过字段表达式来处理绑定的字段.

由于精力有限, 不能在多个博客中保证文章的同步, 可在如下地址查看最新内容, 请谅解:

http://code.google.com/p/zsharedcode/wiki/AjaxReturnJSON

如果, 有不明白的问题, 请先阅读 30 分钟掌握无刷新 Repeater.

请到 Download 下载资源 的 JQueryElement 示例下载一节下载示例代码

本文中所包含的内容如下:

  * 准备
  * 使用范围
  * 简单绑定
  * 转换绑定
  * 格式化日期字段
  * 使用 jQuery 代替$
 
* 根据字段设置样式

示例图片:

 

 

准备

请参照 http://code.google.com/p/zsharedcode/wiki/JQueryElementRepeaterDoc 中的准备.

使用范围

可以在 ItemTemplate/UpdatedItemTemplate/InsertedItemTemplate/RemovedItemTemplate/EditItemTemplate 模板中绑定字段.

可以将字段绑定在标签的属性中或者作为标签的内容.

简单绑定

可以使用 #{<字段名>} 来绑定字段, 比如:

<ItemTemplate>

<td>
#{bookname}
td>

<td>
<strong>评价:strong> <span class&#61;"rank rank#{rank}">span>
td>

ItemTemplate>

上面的例子中, 将字段 bookname 绑定为标签的内容, 将 rank 字段绑定在标签的属性 class 中.

转换绑定

使用 #{<字段名>[,<字段表达式>]} 来转换字段中的值, 然后输出, 比如:

<ItemTemplate>

<td>
<strong>折扣:strong>
#{discount,Math.floor(# * 100) / 10} 折
#{discount,convertDiscount(#)}
td>

ItemTemplate>

在字段表达式中, 使用 # 号来表示被绑定的字段. 上面代码中的 discount 字段分别通过一个 Javascript 表达式和一个函数来转换了字段的值并输出, Javascript 函数如下:

<script type&#61;"text/Javascript">
function convertDiscount(discount) {
return discount >&#61;0.7?&#39;清仓啦&#39; : &#39;减价啦&#39;;
}
script>

格式化日期字段

对于采用默认参数返回的 JSON, 日期格式的字段的返回值可能类似于 "\/Date(xxxxxxxxxx)\/" 的字符串, 可以通过 jQuery.panzer.formatDate 函数来格式化日期, 或者使用 jQuery.panzer.convertToDate"\/Date(xxxxxxxxxx)\/" 格式的字符串转化为日期类型, 例如:

<ItemTemplate>

<td>
<strong>出版日期:strong>
<span class&#61;"publishdate">
#{publishdate,jQuery.panzer.formatDate(#,&#39;yyyy年M月d号&#39;)}
span>
td>

ItemTemplate>

函数 jQuery.panzer.formatDate 的第一个参数为 Date 类型的 Javascript 变量或者格式为 "\/Date(xxxxxxxxxx)\/" 的字符串. 第二个参数为用于格式化的字符串, 这类似于 .NET 中的 DateTime 类型的 ToString 方法, 例如:

<script type&#61;"text/Javascript">
var date &#61;new Date(2011, 0, 1, 20, 1, 3);
// 2011 年 1 月 1 号, 20 时 1 分 3 秒

$.panzer.formatDate(date,
&#39;y年&#39;); // 1年
$.panzer.formatDate(date,&#39;yy年&#39;); // 11年
$.panzer.formatDate(date,&#39;yyyy&#39;); // 2011

$.panzer.formatDate(date,
&#39;M月&#39;); // 1月
$.panzer.formatDate(date,&#39;MM月&#39;); // 01月
$.panzer.formatDate(date,&#39;yyyy-MM&#39;);
// 2011-01

$.panzer.formatDate(date,
&#39;d号&#39;); // 1号
$.panzer.formatDate(date,&#39;dd号&#39;); // 01号
$.panzer.formatDate(date,&#39;yyyy-MM-dd&#39;);
// 2011-01-01

$.panzer.formatDate(date,
&#39;H时&#39;); // 20时
$.panzer.formatDate(date,&#39;HH时&#39;); // 20时
$.panzer.formatDate(date,&#39;yyyy-MM-dd HH&#39;);
// 2011-01-01 20

$.panzer.formatDate(date,
&#39;h时&#39;); // 8时
$.panzer.formatDate(date,&#39;hh时&#39;); // 08时
$.panzer.formatDate(date,&#39;yyyy-MM-dd hh&#39;);
// 2011-01-01 08

$.panzer.formatDate(date,
&#39;m分&#39;); // 1分
$.panzer.formatDate(date,&#39;mm分&#39;); // 01分
$.panzer.formatDate(date,&#39;yyyy-MM-dd hh:mm&#39;);
// 2011-01-01 08:01

$.panzer.formatDate(date,
&#39;s秒&#39;); // 3秒
$.panzer.formatDate(date,&#39;ss秒&#39;); // 03秒
$.panzer.formatDate(date,&#39;yyyy-MM-dd hh:mm:ss&#39;);
// 2011-01-01 08:01:03
script>

使用 jQuery 代替 $

在字段表达式中应该使用 jQuery 来代替 $, 以防止由于压缩脚本而产生的问题.

根据字段设置样式

如果需要根据字段的值来显示不同的样式, 可以将字段绑定在 class 属性中, 比如:

<ItemTemplate>

<td>
<strong>评价:strong>
#{rank}
<span class&#61;"rank rank#{rank}">span>
td>

ItemTemplate>

在页面开始处定义了一些 rank 的样式:

<style type&#61;"text/css">
.rank
{
background-color
: #cc0000;
height
: 15px;
display
: inline-block;
}
.rank1
{
width
: 10px;
}
.rank2
{
width
: 30px;
}
.rank3
{
width
: 50px;
}
.rank4
{
width
: 70px;
}
.rank5
{
width
: 90px;
}
style>

示例中 rank 字段中可能会是 1 到 5, 因此样式也定义了 rank1 到 rank5.

JQueryElement 是开源共享的代码, 可以在 http://code.google.com/p/zsharedcode/wiki/Download 页面下载 dll 或者是源代码.

示例代码下载: http://zsharedcode.googlecode.com/files/JQueryElementDemo.rar.

实际过程演示: http://www.tudou.com/programs/view/rwruM87J20s/, 建议全屏观看.

转:https://www.cnblogs.com/zoyobar/archive/2011/10/09/JE_13.html



推荐阅读
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • 小程序wxs中的时间格式化以及格式化时间和date时间互转
    本文介绍了在小程序wxs中进行时间格式化操作的问题,并提供了解决方法。同时还介绍了格式化时间和date时间的互相转换的方法。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
  • 获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法
    本文介绍了获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法,包括使用jQuery的选择器和遍历方法。通过这些方法,可以方便地获取到所需的元素,并进行相应的操作。 ... [详细]
  • 在加载一个第三方厂商的dll文件时,提示“找不到指定模块,加载失败”。由于缺乏必要的技术支持,百思不得期间。后来发现一个有用的工具 ... [详细]
author-avatar
武储中专_444
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有