jQuery MiniUI

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

关于官网Demo弹出表格多选(JS)其中的一个问题。 [复制链接]

Rank: 6Rank: 6

跳转到指定楼层
楼主
发表于 2013-5-8 09:38:09 |只看该作者 |倒序浏览
http://www.miniui.com/demo/#src=buttonedit/selectGrid_js.html

这是Demo地址。。

JS代码中有一段.

function onButtonEdit(e) {
        var buttonEdit = e.sender;

        var win = new UserSelectWindow();

        win.show();
        win.search();

        //初始化数据
        win.setData(null, function (action) {
            if (action == "ok") {
                //获取数据
                var row = win.getData();
                if (row) {
                    buttonEdit.setValue(row.id);
                    buttonEdit.setText(row.name);
                    alert("选中记录: " + row.name);
                }
            }
        });
    }


红色部分。。我的row中,可能不是叫id,name  而且到底叫什么,是动态的,并不是每一次执行这段JS都是固定的名称。。有没有什么方法可以动态设置row中,我要取某个字段呢?

比如我第一次执行这段JS的时候, 实际需要的是  buttonEdit.setValue(row.aa); buttonEdit.setText(row.bb); 第二次执行的时候由于加载的Data和Column不一样,代码实际需要的是 buttonEdit.setValue(row.cc); buttonEdit.setText(row.dd);


这个应该如何实现???

Rank: 8Rank: 8

沙发
发表于 2013-5-8 10:33:25 |只看该作者
本帖最后由 factory 于 2013-5-8 10:35 编辑

var obj ={a:"1",b:"2"}
var c = ....
obj[c]

Rank: 6Rank: 6

板凳
发表于 2013-5-8 11:01:50 |只看该作者
factory 发表于 2013-5-8 10:33
var obj ={a:"1",b:"2"}
var c = ....
obj[c]

再请问。。我在设计HTML元素的时候。。

代码如下。。

<div class='mini-buttonedit' onbuttonclick='onButtonEdit' PKTitle='标题啊' IsMultiple='" + (item.IsMultiple == true ? "1" : "0") + "' PKCols='[列1,列2,列3]' PKData='[{...},{...},{...}]' PKText:'" + item.ComboboxText + "' PKID:'" + item.ComboboxID + "'></div>

红色部分是我自己加上去的属性。。

在以下方法中如何获取?


function onButtonEdit(e) {
        var buttonEdit = e.sender;

        var win = new UserSelectWindow();

        win.show();
        //win.search();

        //初始化数据
        win.setData(null, function (action) {
            if (action == "ok") {
                //获取数据
                var row = win.getData();
                if (row) {
                    buttonEdit.setValue(row.id);
                    buttonEdit.setText(row.name);
                    alert("选中记录: " + row.name);
                }
            }
        });
    }

Rank: 8Rank: 8

地板
发表于 2013-5-8 13:21:51 |只看该作者
nbakill2 发表于 2013-5-8 11:01
再请问。。我在设计HTML元素的时候。。

代码如下。。

<div class='mini-buttonedit' data-options="{PKTitle:'xxxx',IsMultiple:'yyyy'}">

var t = mini.get("buttondite");
alert(t.PKTitle); alert(t.IsMultiple);

如果需要自定义标签的话,需要使用data-options

Rank: 6Rank: 6

5#
发表于 2013-5-8 13:39:50 |只看该作者
本帖最后由 nbakill2 于 2013-5-8 13:43 编辑
factory 发表于 2013-5-8 13:21
var t = mini.get("buttondite");
alert(t.PKTitle); alert(t.IsMultiple);

你用 mini.get("buttonedit")

但是我那个div里面没有给id='buttionedit'哦。。。

你用get,能获取到这个元素吗?我刚才测试了一下,是获取不到的。

因为我这个div元素,也是后台动态获取的。也有可能同时获取多个这样的div。那我每个都指定id号的话。

前台JS又怎么知道我有几个这样的div呢。。。又怎么能获取到自定义属性呢?

Rank: 8Rank: 8

6#
发表于 2013-5-8 14:57:08 |只看该作者
nbakill2 发表于 2013-5-8 13:39
你用 mini.get("buttonedit")

但是我那个div里面没有给id='buttionedit'哦。。。

你总归要获取对象才能使用对象的API啊,
获取对象,要么id,要么name
mini.get(id)  mini.getbyName(name)

不然你获取不到,也不知道你想获取的是哪一个控件

Rank: 6Rank: 6

7#
发表于 2013-5-8 15:00:37 |只看该作者
factory 发表于 2013-5-8 14:57
你总归要获取对象才能使用对象的API啊,
获取对象,要么id,要么name
mini.get(id)  mini.getbyName(name ...

<div class='mini-buttonedit' data-options="{PKTitle:'xxxx',IsMultiple:'yyyy'}">

我自己能不能在这行代码中加入  onclick='click(this);'

然后页面JS中有这样一个方法

function click(e){
      alert(e.PKTitle);
}
因为我通过这样的方法传入this 这样就不需要ID也不需要Name了。。。

但是我试过了,好像没反应哦。、。。

Rank: 8Rank: 8

8#
发表于 2013-5-8 15:04:04 |只看该作者
nbakill2 发表于 2013-5-8 15:00
我自己能不能在这行代码中加入  onclick='click(this);'

然后页面JS中有这样一个方法

onclick="click"

function click(e){
    ....
}

Rank: 6Rank: 6

9#
发表于 2013-5-8 15:07:51 |只看该作者
本帖最后由 nbakill2 于 2013-5-8 15:09 编辑
factory 发表于 2013-5-8 15:04
onclick="click"

function click(e){

我是按照你这个写的,但是无法触发这个事件哦。。。


Rank: 8Rank: 8

10#
发表于 2013-5-8 15:20:49 |只看该作者
onbuttonclick

Archiver|普加软件

GMT+8, 2024-11-28 07:30 , Processed in 1.038669 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部