JqGird 格式化(三)

Jqgrid学习 -------格式化

jqGrid的格式化是定义在语言包中

· $jgrid = { 

· ... 

·    formatter : { 

·      integer : {thousandsSeparator: " ", defaultValue: '0'}, 

·      number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, 

·      currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, 

·      date : { 

·        dayNames: [ 

·          "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat", 

·          "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" 

·        ], 

·        monthNames: [ 

·          "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", 

·          "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" 

·        ], 

·        AmPm : ["am","pm","AM","PM"], 

·        S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, 

·        srcformat: 'Y-m-d', 

·        newformat: 'd/m/Y', 

·        masks : { 

·          ISO8601Long:"Y-m-d H:i:s", 

·          ISO8601Short:"Y-m-d", 

·          ShortDate: "n/j/Y", 

·          LongDate: "l, F d, Y", 

·          FullDateTime: "l, F d, Y g:i:s A", 

·          MonthDay: "F d", 

·          ShortTime: "g:i A", 

·          LongTime: "g:i:s A", 

·          SortableDateTime: "Y-m-d\\TH:i:s", 

·          UniversalSortableDateTime: "Y-m-d H:i:sO", 

·          YearMonth: "F, Y" 

·        }, 

·        reformatAfterEdit : false 

·      }, 

·      baseLinkUrl: '', 

·      showAction: '', 

·      target: '', 

·      checkbox : {disabled:true}, 

·      idName : 'id' 

·    } 

· ...

这些设置可以通过colModel中的formatoptions参数修改

· jQuery("#grid_id").jqGrid({ 

· ... 

·    colModel : [ 

·    ... 

·       {name:'myname', ... formatter:'number', ...}, 

·    ... 

·    ], 

· ... 

· });

此实例是对名为“myname”的列进行格式化,格式化类是“number”,假如初始值为“1234.1”则格式化后显示为“1 234.10” 。

如果给某列进行格式化:

· jQuery("#grid_id").jqGrid({ 

· ... 

·    colModel : [ 

·    ... 

·       {name:'myname', ... formatter:'currency', formatoptions:{decimalSeparator:",", thousandsSeparator: ",", decimalPlaces: 2, prefix: "$ "} } , 

·    ... 

·    ], 

· ... 

· });

这个设置会覆盖语言包中的设置。

 

select类型的格式化实例:

原始数据

· jQuery("#grid_id").jqGrid({ 

· ... 

·    colModel : [ {name:'myname', edittype:'select', editoptions:{value:"1:One;2:Two"}} ... ], 

· ... 

· });

使用格式化后

· jQuery("#grid_id").jqGrid({ 

· ... 

·    colModel : [ {name:'myname', edittype:'select', formatter:'select', editoptions:{value:"1:One;2:Two"}} ... ] 

· ... 

· });

结果是,表格的数据值为1或者2但是现实的是One或者Two。

对超链接使用select类型的格式化:

· jQuery("#grid_id").jqGrid({ 

· ... 

·    colModel: [ {name:'myname', edittype:'select', formatter:'select', formatoptions:{baseLinkUrl:'someurl.php', addParam: '&action=edit'}, ...}  

·       ...  

·    ] 

· ... 

· });

得到http://localhost/someurl.php?id=123&action=edit

如果想改变id值则

· jQuery("#grid_id").jqGrid({ 

· ... 

·    colModel: [ {name:'myname', edittype:'select', formatter:'select', formatoptions:{baseLinkUrl:'someurl.php', addParam: '&action=edit', idName:'myid'}, ...}  

·       ...  

·    ] 

· ... 

· });

得到http://localhost/someurl.php?myid=123&action=edit

 

Jqgrid学习 -------自定义格式化

· jQuery("#grid_id").jqGrid({ 

· ... 

·    colModel: [  

·       ...  

·       {name:'price', index:'price', width:60, align:"center", editable: true, formatter:currencyFmatter}, 

·       ... 

·    ] 

· ... 

· }); 

·   

· functioncurrencyFmatter (cellvalue, options, rowObject) 

·

·    // do something here 

·    return new_format_value 

· }

cellvalue:要被格式化的值 options:对数据进行格式化时的参数设置,格式为: { rowId: rid, colModel: cm} rowObject:行数据

 

数据的反格式化跟格式化用法相似.

· jQuery("#grid_id").jqGrid({ 

· ... 

·    colModel: [  

·       ...  

·       {name:'price', index:'price', width:60, align:"center", editable: true, formatter:currencyFmatter, unformat:unformatCurrency}, 

·       ... 

·    ] 

· ... 

· }); 

·   

· functioncurrencyFmatter (cellvalue, options, rowObject) 

·

·   

·    return "$"+cellvalue; 

·

· function unformatCurrency (cellvalue, options) 

·

·   

·    return cellvalue.replace("$",""); 

·

表格中数据实际值为123.00,但是显示的是$123.00; 我们使用getRowData ,getCell 方法取得的值是123.00。 创建通用的格式化函数

· <script type="text/javascript"> 

· jQuery.extend($.fn.fmatter , { 

·     currencyFmatter : function(cellvalue, options, rowdata) { 

·     return "$"+cellvalue; 

·

· }); 

· jQuery.extend($.fn.fmatter.currencyFmatter , { 

·     unformat : function(cellvalue, options) { 

·     return cellvalue.replace("$",""); 

·

· }); 

·   

· </script>

具体使用:

· jQuery("#grid_id").jqGrid({ 

· ... 

·    colModel: [  

·       ...  

·       {name:'price', index:'price', width:60, align:"center", editable: true, formatter:currencyFmatter}, 

·       ... 

·    ] 

· ... 

· })

### JqGrid 工具栏配置与使用 JqGrid 是一种功能强大的 jQuery 插件,用于显示和操作表格数据。其工具栏可以分为顶部工具栏和底部导航工具栏两种主要形式。以下是关于如何配置和使用这些工具栏的相关说明。 #### 1. 配置顶部工具栏 (Top Toolbar) 通过设置 `toolbar` 属性为 `[true,"top"]` 或者 `[true,"both"]` 可以启用顶部工具栏。此工具栏通常用来放置自定义按钮或其他控件[^2]。 ```javascript $("#grid").jqGrid({ datatype: "local", colNames: ['ID', 'Name'], colModel: [ { name: 'id', index: 'id', width: 60 }, { name: 'name', index: 'name', width: 90 } ], toolbar: [true, "top"], // 启用顶部工具栏 }); ``` 一旦启用了顶部工具栏,可以通过选择器访问它并动态添加 HTML 元素: ```javascript // 获取顶部工具栏 DOM 对象 const topToolbar = $("#gview_grid .ui-userdata"); if (topToolbar.length > 0) { topToolbar.append('<button id="customButton">Custom Action</button>'); } ``` #### 2. 底部导航工具栏 (Pager Navigation Toolbar) 底部导航工具栏主要用于分页控制和其他交互式功能。要创建一个带有分页功能的网格视图,需指定 `pager` 参数以及相应的 ID[^3]。 ```javascript $("#grid").jqGrid({ url: '/someurl', datatype: "json", colNames: ['ID', 'Name'], colModel: [ { name: 'id', index: 'id', width: 60 }, { name: 'name', index: 'name', width: 90 } ], pager: "#pager", // 绑定到页面上的某个 div 元素作为分页条容器 rowNum: 10, rowList: [10, 20, 30], viewrecords: true, caption: "My first grid" }).navGrid("#pager", { edit: false, add: false, del: false }); ``` 上述代码片段展示了如何初始化具有基本 CRUD 功能禁用状态下的 jqGrid 实例,并为其关联了一个名为 `"#pager"` 的分页组件。 #### 3. 自定义按钮行为 无论是顶部还是底部工具栏,都可以轻松扩展新的按钮来实现特定业务逻辑。例如,在顶部工具栏上增加导出 Excel 文件的功能[^4]: ```javascript jQuery("#grid").jqGrid('navButtonAdd',"#pager",{caption:"Export", buttonicon:"ui-icon-export", onClickButton:function(){ alert("Export functionality triggered!"); }}); ``` 以上示例演示了向已存在的分页导航工具栏追加一个新的 “Export” 按钮的过程;当点击该按钮时会弹窗提示消息框告知用户触发事件成功。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值