分享

jquery easyui datagrid struts2 json读取数据

 firefly87 2012-07-03

jquery easyui datagrid+struts2+json读取数据

这三样都是头一次使用,于是弄的焦头烂额~~~好在问题解决,现把遇到的问题写下来:

struts配置文件:使用jsonplugin将属性转换成json对象,extends="json-default" result type要为json

root 是只返回该内容,resultObj与action的属性名字一样,即要返回给页面的值

<package name="bps" extends="json-default">
<action name="bps" class="com.alik.bps.action.BpsAction" method="findBps">
    <result type="json">
    <param name="root">resultObj</param>
    </result>
</action>
<action name="msg" class="com.alik.bps.action.MsgAction" method="findMsg">
    <result type="json">
    <param name="root">resultObj</param>
    </result>
</action>
</package>

action中方法

private JSONObject resultObj;//此处定义为JSONObject是因为datagrid默认接收的为json对象而不是json字符串,如果定义为string类型的页面读取数据时会报错,我之前报错为rows is not defined

此处省略resultObj的set\get方法

public String findMsg() throws Exception
{
   Map map = new HashMap();
   ArrayList al = new ArrayList();
   for(int i=0;i<3;i++)
   {
    Map m = new HashMap();
    m.put("itemid", String.valueOf(i));
    m.put("mction", "a");
   
    al.add(m);
   }
   map.put("total", 3);
   map.put("rows", al);
   resultObj=JSONObject.fromObject(map); //将map对象转换成为json对象
   System.out.println(resultObj);
   return SUCCESS;
}

页面

$('#inVariables').datagrid({
   rownumbers:true,
   title:'输入',
   height:200,
   singleSelect:false,
   idField:'itemid',
  url:'msg.action',
   queryParams:{"ComKey":"","SvcKey":""},
   columns:[[
   {field:'ck',checkbox:true},
   {field:'itemid',title:'Item ID',width:100,align:'right',
   editor:{
   type:'text'},
   formatter:function(value){
   return '<a href="#" onclick="insertAtCaret('+value+')">'+value+'</a>';
   }
   },
   {field:'mction',title:'Action',width:100,align:'center',
   formatter:function(value,row,index){
   if (row.editing){
   var s = '<a href="#" onclick="saverow('+index+',\'inVariables\')">保存</a> ';
   var c = '<a href="#" onclick="cancelrow('+index+',\'inVariables\')">取消</a>';
   return s+c;
   } else {
   var e = '<a href="#" onclick="editrow('+index+',\'inVariables\')">修改</a> ';
   var rowid;
   if(row.itemid=='')
   {
    rowid='null';
   }
   else
   rowid=row.itemid;
   var d = '<a href="#" onclick="deleterow('+index+',\'inVariables\','+rowid+')">删除</a>';
   return e+d;
   }
   }
   }
   ]],
   toolbar:[{
   text:'增加行',
   iconCls:'icon-add',
   handler:function(){
   addRow('inVariables');
   }
   },{
   text:'删除多行',
   iconCls:'icon-cut',
   handler:function(){deleteRows('inVariables');}
   }],
   onBeforeEdit:function(index,row){
   row.editing = true;
   $('#inVariables').datagrid('refreshRow', index);
   },
   onAfterEdit:function(index,row){
   row.editing = false;
   $('#inVariables').datagrid('refreshRow', index);
   },
   onCancelEdit:function(index,row){
   row.editing = false;
   $('#inVariables').datagrid('refreshRow', index);  
   },
   onClickRow:function(index,row){
   newDG(row);
   }
   });

大概是这样

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约