jQuery MiniUI

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

demo中detailgrid.html例子中grid.load({ dept_id: e.node.id })传参问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2020-8-22 19:49:13 |只看该作者 |倒序浏览
demo中detailgrid.html例子中grid.load({ dept_id: e.node.id })传参数,后台通过 String dept_id = GetString("dept_id");获取值为null ,请问这是为什么?谢谢

Rank: 3Rank: 3

沙发
发表于 2020-8-23 16:28:14 |只看该作者
有人知道告诉一下我吗

Rank: 6Rank: 6

板凳
发表于 2020-8-24 08:49:59 |只看该作者
kingannly 发表于 2020-8-23 16:28
有人知道告诉一下我吗

可以用实体接

Rank: 3Rank: 3

地板
发表于 2020-8-24 09:01:52 |只看该作者
本帖最后由 kingannly 于 2020-8-24 09:03 编辑
哎呀 发表于 2020-8-24 08:49
可以用实体接

发现前端用$.Ajax  post提交,到后台监控到request的HttpMethod变成了GET,有办法解决吗?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 6Rank: 6

5#
发表于 2020-8-24 09:15:10 |只看该作者
本帖最后由 哎呀 于 2020-8-24 09:20 编辑
kingannly 发表于 2020-8-24 09:01
发现前端用$.Ajax  post提交,到后台监控到request的HttpMethod变成了GET,有办法解决吗?
...

grid.load({}),参数可以用实体接,获取用request.getParameter(name)获取
grid.load({dept_id: dept_id}) 参数,(String dept_id)这样获取好像也是可以的
你是要处理后台无法接受参数的问题还是?

Rank: 3Rank: 3

6#
发表于 2020-8-24 09:34:31 |只看该作者
哎呀 发表于 2020-8-24 09:15
grid.load({}),参数可以用实体接,获取用request.getParameter(name)获取
grid.load({dept_id: dept_id})  ...

我是用下面方法提交保存数据 ,
var data = grid.getChanges();
            var json = mini.encode(data);           
            grid.loading("保存中,请稍后......");   
            $.ajax({
                type: "POST",  //$.ajax前端post提交后台变成get
                url: "../data/AjaxService.aspx?method=SaveEmployees",//&data=" + escape(json),
                data: { "data": json },
                headers: {
                    "Authorization": "token"//此处放置请求到的用户token
                },
                dataType:'json',//若为json,无法接受字符传返回值
                success: function (text) {                    
                    grid.reload();////官方原方法,但是后台获取不到data参数值
                  
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(jqXHR.responseText);
                }
            });
用下面方法后台获取不到数据,为null
public void SaveEmployees()
        {
            ArrayList data = GetArrayList("data");
            new EmployeeBLL().SaveEmployees(data);
        }
public ArrayList GetArrayList(String name) {
            string s = GetString(name);
            if (String.IsNullOrEmpty(s)) return new ArrayList();
                    return (ArrayList)JSON.Decode(s);
            }
public String GetString(String name) {
                    return Request[name];
            }

Rank: 6Rank: 6

7#
发表于 2020-8-24 09:48:32 |只看该作者
kingannly 发表于 2020-8-24 09:34
我是用下面方法提交保存数据 ,
var data = grid.getChanges();
            var json = mini.encode(data ...

$.ajax({
                                url: "<%=basePath%>userDefined/p_update_user_defined_query",
                                data: mini.encode (rows),
                                dataType: 'text',
                                type:'POST',
                                contentType: "application/json",
                                success:function(e){
                                        if(e == null||e == ""|| e == "null"){
                                                getDefinedQuery();
                                        }else{
                                                mini.alert(e);
                                        }
                                }
                        });


public String p_update_user_defined_query(@RequestBody String data) {
                JSONArray array = JSONArray.parseArray(data);
                List<UserDefined> editList = new ArrayList<UserDefined>();  //修改/新增
                List<UserDefined> delList = new ArrayList<UserDefined>();  //删除
                StringBuilder builder = new StringBuilder();
                for(int i = 0; i < array.size(); i++){
                        JSONObject json = array.getJSONObject(i);
                        UserDefined params = JSON.toJavaObject(json, UserDefined.class);
               
                        if("removed".equals(json.get("_state"))){
                                delList.add(params);
                        }
                        if("modified".equals(json.get("_state")) || "added".equals(json.get("_state"))){
                                editList.add(params);
                        }
                }
                if(editList.size() > 0){
                        //  新增/修改
                        builder.append(userDefined.p_update_user_defined_query(editList));
                }
                if(delList.size() > 0){
                        //  删除
                        builder.append(userDefined.p_del_user_defined_query(delList));
                }
                return builder.toString();
        }

Rank: 8Rank: 8

8#
发表于 2020-8-24 10:22:12 |只看该作者
kingannly 发表于 2020-8-24 09:34
我是用下面方法提交保存数据 ,
var data = grid.getChanges();
            var json = mini.encode(data ...

这ajax是你自己跑的,不受我们控制的,不清楚你这里为什么post会变成get。先解决这个问题。

Rank: 3Rank: 3

9#
发表于 2020-8-24 10:26:30 |只看该作者
哎呀 发表于 2020-8-24 09:48
$.ajax({
                                url: "userDefined/p_update_user_defined_query",
                                data: mini.encode (rows),

用这种也不行,奇怪,为什么到后台后HttpMethod变为GET了
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

10#
发表于 2020-8-24 11:32:32 |只看该作者
kingannly 发表于 2020-8-24 10:26
用这种也不行,奇怪,为什么到后台后HttpMethod变为GET了

看浏览器网络交互里面提交的时候是什么格式
如果那里就是get,那说明你们对ajax进行过处理

Archiver|普加软件

GMT+8, 2024-9-8 12:28 , Processed in 1.049585 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部