jQuery MiniUI

标题: 使用过程中发现DataGrid 、ComboBox等的一些问题和想法 [打印本页]

作者: xiwa    时间: 2012-4-16 00:04:48     标题: 使用过程中发现DataGrid 、ComboBox等的一些问题和想法

本帖最后由 xiwa 于 2012-4-16 00:06 编辑

几天没弄MiniUI了,前几天在做一个表单页面时发现的一些问题,有的可能对API不了解,可能有的只是自己的一些片面的看法。
希望MiniUI越做越好!

1. DataGrid 的rowdblclick事件xx(sender,record),鼠标双击时调用了两次并且record的值为undefinde。
    而且很多类似事件回调方法,第2个参数都没值,和API上描述的不一致。

2. 控件使用方法链调用就更方便了,如:ButtonEdit的setValue().setText()

3. <a class="mini-button close_window" iconCls="icon-cancel" >关闭</a>
   $(".close_window").click(function () {
     alert(1);
   });
   点击按钮时click执行了两次,框架本身基于jquery,要是支持这种写法就好了。

4. ButtonEdit,怎么设置不能输入,只能从"..."按钮选择呢?设置enabled="false"或readonly="true"禁用了,但是上面的"..."按           钮也点不了

5. DataGrid
    grid.on("rowclick",function(sender){
      grid.beginEditRow(sender.row);
    });
    当row处理编辑状态时,点击编辑状态中的文本框,文本框得不到焦点,无法输入。

6. DataGrid 编辑状态中对ButtonEdit这类要同时设置text和value的控件支持不够,不能自动设置Text。
   建议设置单元格值增加对象类型支持,如:row={type:{Value:xx,Text:"xx"}}

7. 建议DataGrid 编辑控件的.mini-grid-editor width默认设置为100%,headerAlign默认设置为居中

8. DataGrid编辑控件:
    var row={num:0};
    grid.addRow(row);
    grid.beginEditRow(row);
    当num为0时编辑框显示的内容为空。

9. 建议CombBox的项可以直接通过html设置,如:<div class="mini-combobox" data="[{value:1,text:'aaa'}]"...

10. 在线示例=>ComboBox 联动下拉选择中:设置combobox初始值为cn<input class="mini-combobox" value="cn" />,
      未能显示初始值,需要手动setValue。

11. combobox项只有一项时,鼠标移到项上时底部有7个像素的空白。

12. 关闭tab时产生的activechanged事件中,activechanged事件的sender参数值是空,期望是新激活的那个tab。



作者: fcrong    时间: 2012-4-16 12:55:30

非常感谢你的意见和建议,回复一一如下:

1. DataGrid 的rowdblclick事件xx(sender,record),鼠标双击时调用了两次并且record的值为undefinde。
    而且很多类似事件回调方法,第2个参数都没值,和API上描述的不一致。
    答:应该是onRowDblClick(e) ,然后e.sender是控件对象,e.record是行对象。

2. 控件使用方法链调用就更方便了,如:ButtonEdit的setValue().setText()
    答:不支持方法链。比如btn.setValue(), btn.setText()方式调用,代码更清晰、标准。

3. <a class="mini-button close_window" iconCls="icon-cancel" >关闭</a>
   $(".close_window").click(function () {
     alert(1);
   });
   点击按钮时click执行了两次,框架本身基于jquery,要是支持这种写法就好了。
    答:请使用miniui提供的事件来处理。

4. ButtonEdit,怎么设置不能输入,只能从"..."按钮选择呢?设置enabled="false"或readonly="true"禁用了,但是上面的"..."按           钮也点不了
    答:可以设置:allowInput="false"。就可以了。

5. DataGrid
    grid.on("rowclick",function(sender){
      grid.beginEditRow(sender.row);
    });
    当row处理编辑状态时,点击编辑状态中的文本框,文本框得不到焦点,无法输入。
    答:如果有这样的情况,那应该是BUG。请说明浏览器版本,以及提供示例代码。

6. DataGrid 编辑状态中对ButtonEdit这类要同时设置text和value的控件支持不够,不能自动设置Text。
   建议设置单元格值增加对象类型支持,如:row={type:{Value:xx,Text:"xx"}}
    答:已经可以。参考:http://miniui.com/demo/#src=datagrid/rowedit_openpage.html
        设置列的 displayField="manager_name",就对应到控件的text属性。

7. 建议DataGrid 编辑控件的.mini-grid-editor width默认设置为100%,headerAlign默认设置为居中
    答:非常好的建议。以后会考虑实现。

8. DataGrid编辑控件:
    var row={num:0};
    grid.addRow(row);
    grid.beginEditRow(row);
    当num为0时编辑框显示的内容为空。
    答:应该是BUG,我们会测试修复。

9. 建议CombBox的项可以直接通过html设置,如:<div class="mini-combobox" data="[{value:1,text:'aaa'}]"...
     答:现在就支持的。

10. 在线示例=>ComboBox 联动下拉选择中:设置combobox初始值为cn<input class="mini-combobox" value="cn" />,
      未能显示初始值,需要手动setValue。
    答:初始值value其实是设置好的,只是你缺少data,没有文本。

11. combobox项只有一项时,鼠标移到项上时底部有7个像素的空白。
    答:下拉框有默认最小高度,这个其实不是什么问题。

12. 关闭tab时产生的activechanged事件中,activechanged事件的sender参数值是空,期望是新激活的那个tab。
    答:onactivechanged(e) e.tab就是激活的那个。
          你对miniui的事件还不了解,可以看开发教程。
作者: xiwa    时间: 2012-4-16 15:30:11

OK,先mark一下,有空再看看。
作者: xiwa    时间: 2012-4-18 14:14:58

5. DataGrid
    grid.on("rowclick",function(sender){
      grid.beginEditRow(sender.row);
    });
    当row处理编辑状态时,点击编辑状态中的文本框,文本框得不到焦点,无法输入。
    答:如果有这样的情况,那应该是BUG。请说明浏览器版本,以及提供示例代码。
    回:见:http://miniui.com/demo/#src=datagrid/rowedit_openpage.html
           浏览器:Chrome 18.0.1025.162
           添加代码:
           dept_grid.on("rowclick",function(sender){
                 dept_grid.beginEditRow(sender.row);
          });

10. 在线示例=>ComboBox 联动下拉选择中:设置combobox初始值为cn<input class="mini-combobox" value="cn" />,
      未能显示初始值,需要手动setValue。
    答:初始值value其实是设置好的,只是你缺少data,没有文本。
    回:见:http://miniui.com/demo/#src=combobox/linkage-combo.html
           为国家下拉html添加: value="cn"
           有data:countryCombo.load(countrys)
           通过url加载data没问题。




作者: fcrong    时间: 2012-4-22 18:21:05

5)当row处理编辑状态时,点击编辑状态中的文本框,文本框得不到焦点,无法输入。
你应该先判断此行是否处于编辑状态:
if(grid.isEditingRow(row) == false){
      grid.beginEditRow(row);
}

10)需要先加载combobox的数据后,再设置value





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