jQuery MiniUI

标题: 怎样用ButtonEdit做下拉框 [打印本页]

作者: huanghk    时间: 2013-5-28 15:17:24     标题: 怎样用ButtonEdit做下拉框

如题,请教下管理员,怎样用用ButtonEdit做类似combobox下拉表格的效果,因为demo中提供的combobox下拉框没有刷新、分页甚至是增加等等这些操作,所有有办法自定义吗?

作者: felt    时间: 2013-5-28 15:30:40

你看下lookup控件是否能满足你的需求
http://www.miniui.com/demo/#src=lookup/lookup.html
作者: huanghk    时间: 2013-5-28 15:51:33

felt 发表于 2013-5-28 15:30
你看下lookup控件是否能满足你的需求
http://www.miniui.com/demo/#src=lookup/lookup.html

非常感谢,应该够了。
顺便问下,下拉treegrid也可以吗?
作者: factory    时间: 2013-5-28 16:08:29

huanghk 发表于 2013-5-28 15:51
非常感谢,应该够了。
顺便问下,下拉treegrid也可以吗?

可以的,把datagrid的代码替换成treegrid就可以了

另外提个建议,因为lookup是把下拉内容写死在一个页面上的,不仅页面代码比较多,而且也不利于 下拉页面 的重用。
所以建议用buttonedit,配合 mini.open(),用弹出的一个html页面的方式做,html页面里面可以放你的表格或者treegrid。这样这个页面可以在其他的地方被重复使用。

参考:http://www.miniui.com/demo/#src=buttonedit/selectGrid.html

当然,你如果确定需要lookup也是可以的
作者: huanghk    时间: 2013-5-28 16:22:53

factory 发表于 2013-5-28 16:08
可以的,把datagrid的代码替换成treegrid就可以了

另外提个建议,因为lookup是把下拉内容写死在一个页面 ...

好的,感谢,可以重用就更好了
作者: huanghk    时间: 2013-5-28 17:01:27

再问下,如果是lookup的话,text能不能是datagrid两个列的数据组合,比如
         A          B
1      甲省       甲市
2      甲省       乙市
选中第一条记录时lookup的text那里是显示甲省甲市      
作者: factory    时间: 2013-5-28 17:10:14

huanghk 发表于 2013-5-28 17:01
再问下,如果是lookup的话,text能不能是datagrid两个列的数据组合,比如
         A          B
1      甲 ...

你一定要这样做的话,我建议你用mini.open来做

参考http://www.miniui.com/demo/#src=buttonedit/selectGrid.html
然后在mini.open的ondestroy: function (action) {}里面
也就是在关闭窗体,返回数据的时候,你把两列的数据放到一起,组成一个字符串
var a = "甲省甲市"
然后btnEdit.setText(data.a);
这样输入里面显示的就是2列的数据了
作者: huanghk    时间: 2013-5-28 17:18:12

factory 发表于 2013-5-28 17:10
你一定要这样做的话,我建议你用mini.open来做

参考http://www.miniui.com/demo/#src=buttonedit/select ...

嗯,mini.open确实是一个很好的选择,不过有个地方可能满足不到需求。
比如:前提可以多选,然后有30条数据,第一页有我要的数据,第二页也有我要的数据,第三页也是,那我得第一页选完之后点确定,又打开,翻到第二页,再选,点确定,....但是如果写成行选中事件的话,又感觉怪怪的。不知道我说的对不对。
作者: factory    时间: 2013-5-28 17:25:53

huanghk 发表于 2013-5-28 17:18
嗯,mini.open确实是一个很好的选择,不过有个地方可能满足不到需求。
比如:前提可以多选,然后有30条数 ...

这个,其实也好做的,做法有2种
1.你写个变量,把第一页选的放进去,翻到第二页,把第二页选的放进去,然后把这个变量返回回去就可以了
2.在父页面,也就是你的buttonedit的页面,写一个给buttonedit   setValue()和setText()的方法,比如叫setBtnValue(row){
       btnEdit.setValue(row.a);
       btnEdit.setText(row.b)
}
然后在你的弹出页面,也就是表格页,监听onrowclick事件 onrowclick="rowclick"
function rowclick(e){
    var row = e.record;
   window.Owner.setBtnValue(row)
}

这样就是说,子页面调用父页面的setBtnValue()方法,把选中的行给传递过去,并且执行setValue(),把点击的值都塞到buttonedit

作者: huanghk    时间: 2013-5-28 17:44:36

factory 发表于 2013-5-28 17:25
这个,其实也好做的,做法有2种
1.你写个变量,把第一页选的放进去,翻到第二页,把第二页选的放进去,然 ...

谢谢!
作者: huanghk    时间: 2013-5-28 19:37:20

好像发现mini-lookup一个bug,在正常页面上没有任何问题,但是如果把它放到弹出窗内(mini-window中),就会出现两个问题:
1. mini-lookup的text属性没有生效(设置了没有显示出来);
2. mini-lookup里面的text很长的时候,会覆盖掉那个close按钮和那个下拉按钮。
可以拿http://www.miniui.com/demo/#src=lookup/lookup.html放到http://www.miniui.com/demo/#src=datagrid/popupeditform.html这个例子中进行修改,在里面的editWindow中随便加入一个mini-lookup试试。
作者: factory    时间: 2013-5-29 09:13:52

huanghk 发表于 2013-5-28 19:37
好像发现mini-lookup一个bug,在正常页面上没有任何问题,但是如果把它放到弹出窗内(mini-window中),就 ...

1.text属性没生效是什么意思?
2宽度过长,你增加window宽度

作者: niko    时间: 2013-5-29 09:47:20

http://www.miniui.com/demo/diyclass/4_combogrid.html
下载:http://www.miniui.com/download/
查看: demo/diyclass
里面有自定义类的示例。
作者: huanghk    时间: 2013-5-29 10:51:37

factory 发表于 2013-5-29 09:13
1.text属性没生效是什么意思?
2宽度过长,你增加window宽度

声明下,我说的问题都是指在mini-window内才会有:
1. text不是指mini-lookup的初始化文本吗,比如text="abc"就会显示"abc"在上面,但是没有显示出来。
2. 不是增加window宽度的问题,里面的文本总有很长的时候,我是指里面的文本的z-index还要在close图标和那个下拉图片的上面。(注:需要设置showClose="true"才会有这个问题,不然就没有这个问题)截图如下:
[attach]2062[/attach]

作者: huanghk    时间: 2013-5-29 10:55:14

niko 发表于 2013-5-29 09:47
http://www.miniui.com/demo/diyclass/4_combogrid.html
下载:http://www.miniui.com/download/
查看: dem ...

谢谢,好多demo
作者: huanghk    时间: 2013-5-29 17:26:12

另外,如果行编辑中含有mini-lookup的时候,调用grid.beginEditRow时,grid只会设置value,好像没有同时setText,结果text没有显示出来。
作者: factory    时间: 2013-5-29 17:39:59

huanghk 发表于 2013-5-29 17:26
另外,如果行编辑中含有mini-lookup的时候,调用grid.beginEditRow时,grid只会设置value,好像没有同时set ...

http://www.miniui.com/demo/#src=datagrid/rowedit_lookup.html

你看下这个demo
作者: huanghk    时间: 2013-5-29 22:15:36

factory 发表于 2013-5-29 17:39
http://www.miniui.com/demo/#src=datagrid/rowedit_lookup.html

你看下这个demo

OK,用displayField能解决。
上面说的那个遮住的问题是我写错了还是真有这个问题?
作者: factory    时间: 2013-5-30 10:53:30

huanghk 发表于 2013-5-29 22:15
OK,用displayField能解决。
上面说的那个遮住的问题是我写错了还是真有这个问题? ...

是有这个问题,我们修复下
作者: factory    时间: 2013-5-30 11:28:56

huanghk 发表于 2013-5-29 22:15
OK,用displayField能解决。
上面说的那个遮住的问题是我写错了还是真有这个问题? ...

已经修复好了,你去下载更新下
作者: huanghk    时间: 2013-5-30 12:14:42

factory 发表于 2013-5-30 11:28
已经修复好了,你去下载更新下

效率真高,赞一个




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