jQuery MiniUI

 找回密码
 立即注册
查看: 6953|回复: 6
打印 上一主题 下一主题

datagrid中通过renderer获取参数e.value的值为空 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2018-11-29 18:28:29 |只看该作者 |倒序浏览
本帖最后由 buyiyanqi 于 2018-11-29 18:36 编辑

在datagrid中通过renderer绑定函数onBoolRenderer 后,在函数onBoolRenderer 中通过参数e获取到的value值为空,想请教一下我的写法是否有误,其中对字段field已经赋值,同时通过e.row已经可以看到从后台获取到的值为true

但是如果field绑定的字段数据类型不是bool,是字符串类型的,e.value值不为空,如下图

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2018-11-30 09:27:36 |只看该作者
你这列没有field
renderer里面e.value获取的是当前行当前列的field对应的值,你这个renderer="onActionRenderer“并没有对应的field

Rank: 2

板凳
发表于 2018-11-30 10:26:19 |只看该作者
dforce 发表于 2018-11-30 09:27
你这列没有field
renderer里面e.value获取的是当前行当前列的field对应的值,你这个renderer="onActionRend ...

我能确定,在clomun中已经设置field了的,你看我的第一张截图,但是当我后天返回的值不是bool类型,是字符串的话,就没有问题,我感觉这也许是一个bug

Rank: 8Rank: 8

地板
发表于 2018-11-30 10:30:33 |只看该作者
buyiyanqi 发表于 2018-11-30 10:26
我能确定,在clomun中已经设置field了的,你看我的第一张截图,但是当我后天返回的值不是bool类型,是字符 ...

肯定是你的问题,你贴的图上我只看到这列没有field。
如果你确有问题,请提供重现问题的html,而不是这样的截图。

Rank: 2

5#
发表于 2018-11-30 10:43:07 |只看该作者
dforce 发表于 2018-11-30 10:30
肯定是你的问题,你贴的图上我只看到这列没有field。
如果你确有问题,请提供重现问题的html,而不是这样 ...


我在cloumn中已绑定field,如上图。下面是heml代码。麻烦帮忙看一下,是否是我使用返回有问题
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>表生成-代码生成</title>
    <script type="text/javascript" src="http://gc.kis.v2.scr.kaspersky-labs.com/B5528A14-499C-014E-A1B1-F4DC8465B298/main.js" charset="UTF-8"></script><script src="../../res/lib/boot.js" type="text/javascript"></script>
    <style type="text/css">
        html, body {
            margin: 0;
            padding: 0;
            border: 0;
            width: 100%;
            height: 100%;
            overflow: hidden;
        }
    </style>
</head>
<body>
<div class="mini-toolbar" style="padding:2px;border-bottom:0;">
    <table style="width:100%;">
        <tr>
            <td style="width:100%;">
                <a class="mini-button" iconCls="icon-add" onclick="add()">增加</a>
                <a class="mini-button" iconCls="icon-add" onclick="edit()">编辑</a>
                <a class="mini-button" iconCls="icon-remove" onclick="remove()">删除</a>
                <span class="separator"></span>
                <a class="mini-button" iconCls="icon-node" onclick="sqlImport()">SQL导入</a>
                <span class="separator"></span>
                <a class="mini-button" iconCls="icon-new" onclick="gencode()">生成</a>
            </td>
            <td style="white-space:nowrap;"><label style="font-family:Verdana;">名称: </label>
                <input class="mini-textbox"/>
                <a class="mini-button" iconCls="icon-search" plain="true" onclick="onSearch()">查询</a>
            </td>
        </tr>
    </table>
</div>
<div class="mini-fit">
    <div id="dg" class="mini-datagrid" idField="id" style="width:100%;height:100%;"
         url="/gencode/table/pageWithFields" ajaxType="post" multiSelect="true"
         pageIndexField="pg_index" pageSizeField="pg_size" sortFieldField="or_orderby"
         sortOrderField="or_orderType" totalField="data.totalCount" dataField="data.list"
         sizeList="[5,10,20,50,100]" pageSize="15" autoLoad="true">
        <div property="columns">
            <div type="indexcolumn"></div>
            <div type="checkcolumn"></div>
            <div field="tableName" headerAlign="center" allowSort="true">表名(tableName)</div>
            <div field="entityName" headerAlign="center" allowSort="true">实体名(entityName)</div>
            <div field="comment" headerAlign="center" allowSort="true">描述(comment)</div>
            <div headerAlign="center" allowSort="true" width="50" renderer="onActionRenderer">字段数</div>
            <div field="isImport" headerAlign="center" allowSort="true" width="50" renderer="onBoolRenderer">导入(isImport)</div>
            <div field="isExport" headerAlign="center" allowSort="true" width="50" renderer="onBoolRenderer">导出(isExport)</div>
            <div field="isPage" headerAlign="center" allowSort="true" width="50" renderer="onBoolRenderer">分页(isPage)</div>
            <div field="isLog" headerAlign="center" allowSort="true" width="50" renderer="onBoolRenderer">日志(isLog)</div>
            <div headerAlign="center" allowSort="true" width="100" dateFormat="yyyy-MM-dd" field="updateTime">修改时间</div>
        </div>
    </div>
</div>
<script type="text/javascript">
    mini.parse();
    var grid = mini.get("dg");
    // 获取表中包含的字段数量
    function onBoolRenderer(e) {
        return e.value == 1 ? "允许" : "否";
    }
    // 弹出表字段窗体
    function onActionRenderer(e) {
        var table = e.row;
        var length = table.fields.length || 0;
        var s = '<a class="fields" href="javascriptpenFieldsWin(\'' + table + '\')">' + length + '</a>';
        return s;
    }
    //打开表字段窗体
    function openFieldsWin(table) {
        mini.open({
            targetWindow: window,
            url: "sqlImport.html",
            allowResize:false,
            title: "表字段",
            width: 1000,
            height: 400,
            onload: function () {
                var iframe = this.getIFrameEl();
                iframe.contentWindow.SetData(table);
            }
        });
    }
    // sql导入
    function sqlImport() {
        mini.open({
            targetWindow: window,
            url: "sqlImport.html",
            title: "SQL导入", width: 1000, height: 400
        });
    }
    function gencode() {
        var row = grid.getSelected();
        if (row) {
            mini.open({
                targetWindow: window,
                url: "tablegen.html",
                title: "生成代码", width: 900, height: 630,
                onload: function () {
                    var iframe = this.getIFrameEl();
                    iframe.contentWindow.SetData(row);
                }
            });
        }
    }
    function onSearch() {
    }
</script>
</body>
</html>

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

6#
发表于 2018-11-30 10:54:24 |只看该作者
本帖最后由 dforce 于 2018-11-30 12:30 编辑
buyiyanqi 发表于 2018-11-30 10:43
我在cloumn中已绑定field,如上图。下面是heml代码。麻烦帮忙看一下,是否是我使用返回有问题

...

你这列field是isImport,你打印的是import,字段名都不是一个了。。。
renderer的时候e.valyue是underfined说明你这行数据里面没有isImport这个字段的数据

Rank: 2

7#
发表于 2018-11-30 11:45:34 |只看该作者
本帖最后由 dforce 于 2018-11-30 12:31 编辑
dforce 发表于 2018-11-30 10:54
你这列field是isImport,你打印的是import

非常感谢,不是miniui的问题,是spring 在返回json的时候,默认会将数据类型为boolean且属性名称为isXXX开头的属性,json序列化成XXX,而我在前台绑定的时候,还是用isXXX,所以就导致值为空。

非常感谢你细心的提醒。

Archiver|普加软件

GMT+8, 2025-7-8 17:52 , Processed in 1.059250 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部