我有一个处理页面判断当前session,如果session不为空就返回给datagrid特定的json格式,如:{"total":1,"rows":[{"DutyID":"32","DutyName":"总经理"}]}这样能正常显示。但当我session为空的时候,我返回的是另外一个json
{"msgtitle":"登录超时","msgtype":"error","msginfo":"登录超时请重新登录!","msgsta":2}因为这个json不是datagrid需要的格式,所以就会报js错误。我本来想在datagrid的onLoadSuccess方法里来判断加载完返回的josn,但是只要是返回登录超时的json都会报js错误。因为datagrid不认识、、
onLoadSuccess: function (data){
   我想在这里判断data是登录超时的json,还是正常显示的json,如果是登录超时就弹出提示,并页面转到登录页面,如果没有超时就正常显示datagrid。但是怎么都不行,55555!
},

解决方案 »

  1.   

    当 session为空的时候,返回   {"total":0,"rows":[{}]}
    页面 js :onLoadSuccess: function (data){
        var result = eval( "("+data+")" );    if( 0 == result.total ){
             $.messager.alert('信息提示','登录超时请重新登录!','error');
             document.location.href="login.html";
        }
    }
      

  2.   

      当然 也许 onLoadSuccess 不会执行, 可以试试 onLoadError ~
      

  3.   

    呵呵 久仰你大名了这样好像也不行呢我不可能只要session为空就返回 {"total":0,"rows":[{}]}这句只是针对datagrid吧?,如果是其他的控件又会报JS错误了而且也不能判断total为0吧,如果数据库本来就没数据岂不是也提示session丢失了?能不能在{"msgtitle":"登录超时","msgtype":"error","msginfo":"登录超时请重新登录!","msgsta":2}在这个基础上进行判断哦  或者有没有其他的方法?
      

  4.   

    可以返回
    {"msgtitle":"登录超时","msgtype":"error","msginfo":"登录超时请重新登录!","msgsta":2,"total":0,"rows":[]}
    这样的数据。
      

  5.   

    其实问题的关键是能不能先请求好数据,然后判断数据,如果判断session为不为空,为空就弹出提示,不为空就赋值给datagrid但是datagrid只能指定url吧?url: 'dealpage/DutysManage.ashx?action=all',如果能直接指定一个定义好的JSON就好了
      

  6.   

    jquery easyui datagrid 只能指定它的url属性吗?能不能直接指定一个在JS里定义好的JSON给它?或者说指定它的url属性,如:url: 'dealpage/DutysManage.ashx?action=all',加载完数据之后,能不能根据这些数据做一些判断,然后再赋值给datagrid 。