easyUI dategrid field 用formatter显示子属性

dategrid:

<body class="easyui-layout"  data-options="fit:true,border:false">
	<table id="dg" class="easyui-datagrid" data-options="fit:true,border:false"
			url="book/listBookForUser"
			toolbar="#toolbar" pagination="true"
			rownumbers="true" fitColumns="true" singleSelect="true">
		<thead>
			<tr>
				<th field="bookId" width="50">书ID</th>
				<th field="bookName" width="50">书名</th>
				<th field="bookType" width="50" formatter="formatBookType">书类型</th>
				<th field="author" width="50">作者</th>
				<th field="callNumber" width="50">索书号</th>
				<th field="iSBN" width="50">ISBN</th>
				<th field="publisher" width="50">出版社</th>
				<th field="publishYear" width="50">出版年份</th>
				<th field="series" width="50">系列</th>
				<th field="language" width="50">语言</th>
				<th field="price" width="50">价格</th>
				<th field="page" width="50">页数</th>
			</tr>
		</thead>
	</table>

这里,book和bookType是多对一的关系,后台返回的json中,bookType又是一个json对象,要获得bookType的bookTypeName,不能直接用bookType.bookTypeName .所以在field的bookType字段加上formatter 。

	function formatBookType(val,row,index){
		//alert(row.bookType);
		if(val==null){
			return "";
		}else
			return row.bookType.bookTypeName;
	} 

val是该字段的值,即bookType。row是行值。这里注意,要加一个if为空的判断,因为我有的书籍没有设置类型,这样的话就会找不到类型名,造成整个date都没有显示数据了。

时间: 2024-12-12 00:04:35

easyUI dategrid field 用formatter显示子属性的相关文章

springmvc+easyui datagrid columns的field支持属性的子属性(field.sonfield形式或者格式化程序形式)

所谓为了支持某属性的子属性,主要为了解决:在服务器返回的json格式的数据的某个属性带有子属性,而我们恰恰又需要使用到该子属性作为我们的datagrid的某个字段的.默认情况下datagrid只能支持一级属性字段(属性的属性字段属于二级字段). 对于这个问题的解决方案有两种方式: 1.就是更改esayui源文件,使其支持field.sonfield的形式. javascript语法为我们提供了两种方式获取一个对象的属性:点字符连接和[]方式.使用[]可以很方便的将一个属性通过字符串的方式获取.但

easyui datagrid columns的field支持属性的子属性(field.sonfield形式或者格式化程序形式)

所谓为了支持某属性的子属性,主要为了解决.在服务器返回的json格式的数据的某个属性带有自属性,而我们恰恰又需要使用到该子属性作为我们的datagrid的某个字段的.默认情况下datagrid只能支持一级属性字段(属性的属性字段属于二级字段). 对于这个问题的解决方案有两种方式 1.就是更改esayui源文件,使其支持field.sonfield的形式. javascript语法为我们提供了两种方式获取一个对象的属性:点字符连接和[]方式.使用[]可以很方便的将一个属性通过字符串的方式获取.但是

CSS3可伸缩框属性,可用于等分显示子元素或按比例显示子元素的大小

用法跟Android的android:layout_weight属性类似,可类比Android中的用法,这样比较好记,由于目前所有浏览器都不支持大部分的属性,所以所有的属性都需要加上Firefox.Safari.Opera 以及 Chrome支持替代的-moz-和-webkit-前缀,现在基本上所有的CSS3属性都应该这样做,即每个属性都需要至少设置三个,参考下面的例子. 父容器属性: display:box;当定义了这个属性时,子元素想居中显示时margin:0px auto是无效的,需使用t

让datagrid中的columns属性支持对象的子属性(类似user.userName)的方法

前台的datagrid的columns属性如下:(请看红色字体部分) columns : [ [ {  //每列上的属性.名称设置 title : '编号', field : 'userInfoId', width : 100, sortable : true },{ title : '姓名', field : 'userInfoName', width : 100, sortable : true },{ title : '密码', field : 'userInfoPassword', wi

java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI. 为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1.前端选中行导出:2.当前页导出:3.当前过滤条件导出. 想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能. ...... 好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时所需要,根据属性名去查找对象和子对象,找到对应属性值,抓取回来放到Excel中. 直接上代码

实例:SSh结合Easyui实现Datagrid的分页显示(JAVA版)

近日学习Easyui,发现非常好用,界面很美观.将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加.修改.删除.批量删除等功能将在后面的博客一一写来. 首先看一下要实现的效果:当每页显示5行数据: 当每页显示10行数据,效果如下: 具体步骤: 1.下载Easyui,并搭建环境.可参照博客 http://blog.csdn.net/lhq13400526230/article/details/9148299 2.搭建SSH工程,整个工程的目录结构如

EasyUI DataGrid 中字段 formatter 格式化不起作用

今天用 EasyUI datagrid 来做列表,要对一些数据进行格式化,推断某字段状态时,发现 formatter 格式化相应的函数不起作用. <table id="list_data" title="未审核报表" class="easyui-datagrid" style="width: auto;height:350px;" url="" toolbar="#toolbar"

创建父窗体显示子窗体方法

#region 显示子窗体 /// <summary> /// 显示子窗体 /// </summary> /// <param name="form"></param> private void ShowForm(Form form) { foreach (Form frm in this.MdiChildren) { if (frm.Text == form.Text) { frm.Activate(); return; } } for

QT 全屏显示子窗口

QT 中全屏显示子窗口的方法 QT 中窗口部件 QWidget 成员函数 showFullScreen();是用于将窗口部件全屏显示 但是他只对窗口模式的部件有用.子窗口的特征是 Qt::SubWindow不是独立的窗 口.因此对其调用 showFullScreen无效.通过对子窗口调用setWindowFlags Qt: :Dialog或 setWindowFlagsQt::Window将其设为窗口模式后即可 调用 showFullScreen();进行全屏显示了. 相对于子窗口的全屏显示方法