jQuery MiniUI

标题: 一点关于JQMINI的小问题 [打印本页]

作者: ly1203    时间: 2017-9-8 09:47:29     标题: 一点关于JQMINI的小问题

setChanged(Boolean)设置是否变动
这里的设置是否变动是指的数据在被加载之后,是否允许变动?

作者: ly1203    时间: 2017-9-8 09:54:53

grid.load() 是加载数据,那什么时候能够使用~为什么有时候说grid没有定义?
作者: qsw    时间: 2017-9-8 10:00:04

ly1203 发表于 2017-9-8 09:54
grid.load() 是加载数据,那什么时候能够使用~为什么有时候说grid没有定义?

//先解析mini控件
mini.parse();
//初始化表格对象
var grid = mini.get("datagrid1");
//加载表格数据(表格的url必须指定好)
grid.load();
作者: felt    时间: 2017-9-8 10:04:39

setChanged是指强制设置表单form是否已经变动,一般初始化的时候设置,
var form=new mini.Form(id)
form.setChanged(false)

这样初始化话,你对表单内容进行修改,我们可以通过form.isChanged()获取到表单是否被修改过。
作者: ly1203    时间: 2017-9-8 10:08:50

qsw 发表于 2017-9-8 10:00
//先解析mini控件
mini.parse();
//初始化表格对象

        function SetData(data) {
                        if (data.action == "edit") {
                                //跨页面传递的数据对象,克隆后才可以安全使用
                                data = mini.clone(data);
                                alert(data.id);
                                $
                                                .ajax({
                                                        url : "${pageContext.request.contextPath}/OrganizationManagement/queryOrganization?id="
                                                                        + data.id,
                                                        type : 'post',
                                                        success : function(text) {
                                                                var o = mini.decode(text);
                                                                //        form.setData(o['result']['pageresult'].data['0']);
                                                                form.setData(o);
                                                                //    alert(o['result'].data[]);
                                                                form.setChanged(true);
                                                                mini.parse();
                                                                var form1 = new mini.get("form1");
                                                                form1.load({
                                                                        form1 : form1
                                                                });
                                                        }
                                                });
                        }
                }
                function GetData() {
                        var o = form.getData();
                        return o;
                }
我在这里面添加了form1想将数据从新加载到表格里面,出现错误not function  是因为这里的位置不对吗?

作者: ly1203    时间: 2017-9-8 10:12:09

        function SetData(data) {
                        if (data.action == "edit") {
                                //跨页面传递的数据对象,克隆后才可以安全使用
                                data = mini.clone(data);
                                alert(data.id);
                                $
                                                .ajax({
                                                        url : "${pageContext.request.contextPath}/OrganizationManagement/queryOrganization?id="
                                                                        + data.id,
                                                        type : 'post',
                                                        success : function(text) {
                                                                var o = mini.decode(text);
                                                                //        form.setData(o['result']['pageresult'].data['0']);
                                                                form.setData(o);
                                                                //    alert(o['result'].data[]);
                                                                form.setChanged(true);
                                                                mini.parse();
                                                                var form1 = new mini.get("form1");
                                                                form1.load({
                                                                        form1 : form1
                                                                });
                                                        }
                                                });
                        }
                }
                function GetData() {
                        var o = form.getData();
                        return o;
                }
这个地方是否有错误。我不能够将数据成功加载到表格里面。
console和前台都不报错
作者: qsw    时间: 2017-9-8 10:13:44

ly1203 发表于 2017-9-8 10:08
function SetData(data) {
                        if (data.action == "edit") {
                                //跨页面传递的数据对象,克隆后才可以 ...

form1是表格吗?如果是,你load方法写的有问题
作者: ly1203    时间: 2017-9-8 10:19:01

qsw 发表于 2017-9-8 10:13
form1是表格吗?如果是,你load方法写的有问题

form1 设置的为DIV的id, 这样有错误吗?

作者: qsw    时间: 2017-9-8 10:27:17

ly1203 发表于 2017-9-8 10:19
form1 设置的为DIV的id, 这样有错误吗?

form1.load({ form1 : form1 });这个写的不对。load方法里{}放的是传给后台的查询条件。
如:
var grid=mini.get("grid");
var key = mini.get("key1").getValue();
grid.load({ keyword:key});
这个就是根据key来查出符合的数据加载到表格中。


作者: ly1203    时间: 2017-9-8 10:31:46

qsw 发表于 2017-9-8 10:27
form1.load({ form1 : form1 });这个写的不对。load方法里{}放的是传给后台的查询条件。
如:
var grid=m ...

我这里是当你点击修改,并且选择好想要修改的信息时,获取到ID ,后台获取到ID然后将相关数据送到页面,这样写发生了错误?
        function SetData(data) {
                        if (data.action == "edit") {
                                //跨页面传递的数据对象,克隆后才可以安全使用
                                data = mini.clone(data);
                                alert(data.id);
                                $
                                                .ajax({
                                                        url : "${pageContext.request.contextPath}/OrganizationManagement/queryOrganization?id="
                                                                        + data.id,
                                                        type : 'post',
                                                        success : function(text) {
                                                                var o = mini.decode(text);
                                                                //        form.setData(o['result']['pageresult'].data['0']);
                                                                form.setData(o);
                                                                //    alert(o['result'].data[]);
                                                                form.setChanged(true);               
                                                        }
                                                });
                        }
                }
                function GetData() {
                        var o = form.getData();
                        return o;
                }
这里发生了什么错误?不能将数据读取成功
作者: felt    时间: 2017-9-8 10:34:24

ly1203 发表于 2017-9-8 10:19
form1 设置的为DIV的id, 这样有错误吗?

http://www.miniui.com/demo/index.html#src=form/form.html
这是我们表单form的示例,示例里面有加载和获取。
form没有load方法,你的这些代码我看不懂
    var form1 = new mini.get("form1");
                                                                form1.load({
                                                                        form1 : form1
                                                                });
作者: qsw    时间: 2017-9-8 10:36:12

ly1203 发表于 2017-9-8 10:31
我这里是当你点击修改,并且选择好想要修改的信息时,获取到ID ,后台获取到ID然后将相关数据送到页面, ...

  var o = mini.decode(text); o的值是什么样的?
作者: ly1203    时间: 2017-9-8 10:46:25

felt 发表于 2017-9-8 10:34
http://www.miniui.com/demo/index.html#src=form/form.html
这是我们表单form的示例,示例里面有加载和 ...

给的网址,我也看过了。经过修改,但是没有解决我的问题
作者: ly1203    时间: 2017-9-8 10:54:47

qsw 发表于 2017-9-8 10:36
var o = mini.decode(text); o的值是什么样的?

form.setData(o);直接这样传值不行吗?我定义的O获取的肯定是表单里面的数据啊。初学。 我是仿照这段代码写的        function SetData(data) {
                if (data.action == "editUser") {
                        //跨页面传递的数据对象,克隆后才可以安全使用
                        data = mini.clone(data);
                         $.ajax({
                                url : "${pageContext.request.contextPath}/userManager/queryOuteruser?id="
                                                + data.id,
                                type : 'post' ,
                                success : function(text) {
                                        var o = mini.decode(text);
                                                form.setData(o['result']['pageresult'].data['0']);
                                                form.setChanged(false);
                                        }
                        });
                }
        }
但是我这样写的时候报错说我的pageresult没有定义。
作者: felt    时间: 2017-9-8 11:00:23

ly1203 发表于 2017-9-8 10:54
form.setData(o);直接这样传值不行吗?我定义的O获取的肯定是表单里面的数据啊。初学。 我是仿照这段代码 ...

form.setData(data);
我们这个方法接收的是一个对象{name1:value1,name2:value2....}
你这数据o['result']['pageresult'].data['0']是你自己组织的,具体是什么,我们并不清楚。请确保setData的数据是我们需要格式的数据。
作者: ly1203    时间: 2017-9-8 11:04:31

felt 发表于 2017-9-8 11:00
form.setData(data);
我们这个方法接收的是一个对象{name1:value1,name2:value2....}
你这数据o['result' ...

对啊,所以我直接将o直接返回,这样不可以吗?所以不能够获取数据?
        function SetData(data) {
                        if (data.action == "edit") {
                                //跨页面传递的数据对象,克隆后才可以安全使用
                                data = mini.clone(data);
                                alert(data.id);
                                $
                                                .ajax({
                                                        url : "${pageContext.request.contextPath}/OrganizationManagement/queryOrganization?id="
                                                                        + data.id,
                                                        type : 'post',
                                                        success : function(text) {
                                                                var o = mini.decode(text);
                                                                //        form.setData(o['result']['pageresult'].data['0']);
                                                                form.setData(o);
                                                                //    alert(o['result'].data[]);
                                                                form.setChanged(true);
                                                        }
                                                });
                        }
                }
                function GetData() {
                        var o = form.getData();
                        return o;
                }
这里我直接将setdata(o)输出,获取不到数据的原因在这里吗?
作者: qsw    时间: 2017-9-8 11:28:39

ly1203 发表于 2017-9-8 11:04
对啊,所以我直接将o直接返回,这样不可以吗?所以不能够获取数据?
        function SetData(data) {
                        if (d ...

前台打断点,看看返回的text是什么样的数据
作者: felt    时间: 2017-9-8 11:35:53

ly1203 发表于 2017-9-8 11:04
对啊,所以我直接将o直接返回,这样不可以吗?所以不能够获取数据?
        function SetData(data) {
                        if (d ...

请前端断点查看你的o到底是什么格式。
作者: ly1203    时间: 2017-9-8 13:13:16

felt 发表于 2017-9-8 11:35
请前端断点查看你的o到底是什么格式。

{"pageSize":20,"pageIndex":0,"total":1,"sortField":null,"sortOrder":null,"summary":null,"data":[{"id":500,"tel":132,"orid":null,"aae100":"1","aae036":"2017-09-07 10:37:38","aae011":"1","bz":"错误不能正确提示","organame":"管理管理机构"}],"ignorecount":false,"notRemoveOrderBy":false,"size":1,"pageCount":1}
这一段里面有我想要返回的数据,这是我在这里输出了page的值,那这样修改才能让数据在页面显示?
organization.queryOrganization(page, orgaVo);
jsonResult.put("pageresult", page);
System.out.println("==="+JsonUtils.toJson(page));
作者: ly1203    时间: 2017-9-8 13:13:50

qsw 发表于 2017-9-8 11:28
前台打断点,看看返回的text是什么样的数据

{"pageSize":20,"pageIndex":0,"total":1,"sortField":null,"sortOrder":null,"summary":null,"data":[{"id":500,"tel":132,"orid":null,"aae100":"1","aae036":"2017-09-07 10:37:38","aae011":"1","bz":"错误不能正确提示","organame":"管理管理机构"}],"ignorecount":false,"notRemoveOrderBy":false,"size":1,"pageCount":1}
这一段里面有我想要返回的数据,这是我在这里输出了page的值,那这样修改才能让数据在页面显示?
organization.queryOrganization(page, orgaVo);
jsonResult.put("pageresult", page);
System.out.println("==="+JsonUtils.toJson(page));
作者: qsw    时间: 2017-9-8 13:35:12

ly1203 发表于 2017-9-8 13:13
{"pageSize":20,"pageIndex":0,"total":1,"sortField":null,"sortOrder":null,"summary":null,"data":[{" ...

form.setData(o.data[0]);
作者: ly1203    时间: 2017-9-8 13:52:00

qsw 发表于 2017-9-8 13:35
form.setData(o.data[0]);

form.setData(o.data[‘0’]);  不管加不加‘’ 都不能将数据进行传递
作者: ly1203    时间: 2017-9-8 14:07:48

qsw 发表于 2017-9-8 13:35
form.setData(o.data[0]);

说是0没有被定义Uncaught TypeError: Cannot read property '0' of undefined
作者: qsw    时间: 2017-9-8 14:18:03

ly1203 发表于 2017-9-8 14:07
说是0没有被定义Uncaught TypeError: Cannot read property '0' of undefined

你要赋值的表单页面是什么样的?
作者: felt    时间: 2017-9-8 14:45:55

ly1203 发表于 2017-9-8 14:07
说是0没有被定义Uncaught TypeError: Cannot read property '0' of undefined

你这样的数据现在要在怎样的表单里展示,我们是没看到对应关系,不清楚你想怎样展示。
作者: ly1203    时间: 2017-9-8 15:07:32

felt 发表于 2017-9-8 14:45
你这样的数据现在要在怎样的表单里展示,我们是没看到对应关系,不清楚你想怎样展示。 ...

{"statusCode":200,"message":"","result":{"pageresult":{"pageSize":20,"pageIndex":0,"total":1,"sortField":null,"sortOrder":null,"summary":null,"data":[{"id":452,"tel":123,"orid":null,"aae100":"1","aae036":"2017-09-06 10:52:02","aae011":"1","bz":"132464654","organame":"管理机构1"}],"ignorecount":false,"notRemoveOrderBy":false,"size":1,"pageCount":1}}}
是这个样子展示的  
通过这个方式o['result']['pageresult'].data[0].id将问题解决, 但是这样解决了传值,他给我返回一个错误,说
        resultGrid.reload();这个地方没有被定义
Uncaught ReferenceError: resultGrid is not defined 出现的错误是当你修改数据时,他会从新给你一个ID 不能够将原本的信息替换
作者: felt    时间: 2017-9-8 16:11:50

ly1203 发表于 2017-9-8 15:07
{"statusCode":200,"message":"","result":{"pageresult":{"pageSize":20,"pageIndex":0,"total":1,"sort ...

http://www.miniui.com/docs/tutorial/datagrid.html
你这看起来是表格啊,你还是看一下我们表格的开发文档,里面有介绍表格的json数据结构。
你这报未定义,应该是你没有获取这个控件。
作者: ly1203    时间: 2017-9-8 16:37:05

felt 发表于 2017-9-8 16:11
http://www.miniui.com/docs/tutorial/datagrid.html
你这看起来是表格啊,你还是看一下我们表格的开发文 ...

初学JQ MINI 我该看什么书?或者视频     哪个好有点,还是直接看例子?
作者: qsw    时间: 2017-9-8 17:46:26

ly1203 发表于 2017-9-8 16:37
初学JQ MINI 我该看什么书?或者视频     哪个好有点,还是直接看例子?

多看看API,你这表格和表单的方法都搞混了
作者: ly1203    时间: 2017-9-11 10:54:51

qsw 发表于 2017-9-8 17:46
多看看API,你这表格和表单的方法都搞混了

表格不就是存放数据的~表单是传输数据的 你说我搞混了是指?
作者: felt    时间: 2017-9-11 11:47:18

ly1203 发表于 2017-9-11 10:54
表格不就是存放数据的~表单是传输数据的 你说我搞混了是指?

表单时指一些输入框类控件组成的控件集合,比如这示例
http://www.miniui.com/demo/#src=form/form.html
表格是指由表头,行,列,分页来组成的表格
http://www.miniui.com/demo/#src=datagrid/datagrid.html
作者: ly1203    时间: 2017-9-11 13:26:41

felt 发表于 2017-9-11 11:47
表单时指一些输入框类控件组成的控件集合,比如这示例
http://www.miniui.com/demo/#src=form/form.html
...

function submitForm() {
                        //提交表单数据
                        form.validate();//校验
                        if (form.isValid() == false) {
                                wdutil.win.alert(form.getErrorTexts());
                                return;
                        }
                        var data = form.getData(); //获取表单多个控件的数据
                        wdutil
                                        .request({
                                                url : "${pageContext.request.contextPath}/OrganizationManagement/addOrganization",
                                                data : data,
                                                success : function(text) {
                                                        if (text.date == true) {
                                                                alert(text.message);
                                                                window.CloseOwnerWindow();
                                                                grid.reload();
                                                        } else {
                                                                alert(text.message);
                                                        }
                                                        return true;
                                                }
                                        });
                }
这里的wdutil。request 是自己写的方法还是说有关于wdutil的方法?
作者: felt    时间: 2017-9-11 16:18:23

ly1203 发表于 2017-9-11 13:26
function submitForm() {
                        //提交表单数据
                        form.validate();//校验

这不是MiniUI的东西。我不太清楚。
作者: ly1203    时间: 2017-9-13 11:09:49

felt 发表于 2017-9-11 16:18
这不是MiniUI的东西。我不太清楚。

        mini.parse();
                var grid = mini.get("jizhigrid");
                grid.load();
                function doQuery() {
                        var orgname = document.getElementById("organame1").value;

                        grid.load({
                                organame : orgname
                        });
                }
                function onKeyEnter() {
                        doQuery();
                }
方便解释一下这里的2个load方法吗? 一个将数据从服务器加载到前台页面,另一个是从前台获取数据将数据传递到后台, 所以一个load需要写参数,另一不需要?
作者: felt    时间: 2017-9-13 12:27:21

ly1203 发表于 2017-9-13 11:09
mini.parse();
                var grid = mini.get("jizhigrid");
                grid.load();

grid.load({})可以带参数,来传递你需要传递的参数,也可以不带参数。
你这里第一个就是没带参数,直接按默认参数查询了数据。
第二个多传递了organame,后台可以获取到这个参数来查询数据,相当于多了给参数。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2