首页 新闻 会员 周边

easyui datagrid行编辑时datetime字段的处理

0
悬赏园豆:10 [已解决问题] 解决于 2015-05-07 12:32

使用easyui datagrid时,有一个字段为时间字段(createDate),原生显示为[object object]已通过formattime函数解决:(如下图)

formattime():

 

但进入行编辑状态时,时间字段又会显示为[object,object],并且转化为json后传给后台无法处理。(如下图)

(图3)

相关代码:

点击行编辑用户按钮和保存相关代码:

//开始行编辑
function
updateUser(){ var row = $("#usergrid").datagrid('getSelected'); if (row) { var rowIndex = $("#usergrid").datagrid('getRowIndex', row); $("#usergrid").datagrid('beginEdit', rowIndex); alert(formattime(row.createDate)); } }

//保存
function saveGrid(){ endEdit(); if ($("#usergrid").datagrid('getChanges').length) {           var inserted = $("#usergrid").datagrid('getChanges', "inserted");           var deleted = $("#usergrid").datagrid('getChanges', "deleted");           var updated = $("#usergrid").datagrid('getChanges', "updated"); var effectRow = new Object(); if (inserted.length) { effectRow["inserted"] = JSON.stringify(inserted); alert(effectRow["inserted"]); $.post("user_appendUser.action", effectRow, function(rsp) { alert("追加已提交!"); $("#usergrid").datagrid("reload"); }); } if (deleted.length) { effectRow["deleted"] = JSON.stringify(deleted); alert("delete"); } if (updated.length) { effectRow["updated"] = JSON.stringify(updated); alert(effectRow["updated"]); $.post("user_updateUser.action", effectRow, function(rsp) { alert("行编辑已提交!"); $("#usergrid").datagrid("reload"); }); } } }

后台代码:

public void updateUser() throws IOException{
        session = baseDao.getSession();
        HttpServletRequest request =         ServletActionContext.getRequest();
        String json = request.getParameter("updated");
        List<User> users = jsonToUser(json);
        if(users!=null && users.size()>0){
            for (int k = 0;k < users.size();k++ ){
                user = users.get(k);                
                session.update(user);                
            }
        }
        baseDao.getTransaction().commit();        
    }


public List<User> jsonToUser(String json) throws IOException{             
        List<User> users = JSON.parseArray(json,User.class);
        return users;             
    }    

目前有2种思路:

1)时间字段createDate行编辑状态时使用datetimebox控件显示和处理时间,传给后台。

2)时间字段createDate行编辑状态时设置为不可编辑状态,但如图3格式显示原本时间(格式为 2015-05-03 22:00:00),并以时间格式传给后台处理。

求助大家该如何处理,写代码?希望能提供思路和详细完整代码,非常感谢!

不应挽留的主页 不应挽留 | 初学一级 | 园豆:166
提问于:2015-05-03 22:01
< >
分享
最佳答案
0

目前自己采用后台用sql把datetime转为char,转为hibernate实体,需修改实体类和*.hbm.xml中相应字段类型为string,前台datagrid设置createDate为不可编辑状态解决。

不应挽留 | 初学一级 |园豆:166 | 2015-05-06 12:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册