jQuery MiniUI

标题: 怎样动态设置编辑器 [打印本页]

作者: wp260204287    时间: 2014-1-13 12:17:07     标题: 怎样动态设置编辑器

如题,在Gridview中怎样才能动态设置编辑器,如现在是Textbox,我把它化成其他的控件。或者是换个思路,怎样在Gridview中验证具体的某一个单元格验证。望版主指点一下啊。

作者: felt    时间: 2014-1-13 13:05:01

http://www.miniui.com/demo/#src=datagrid/celledit2.html
参考这个demo
作者: wp260204287    时间: 2014-1-13 17:31:53

felt 发表于 2014-1-13 13:05
http://www.miniui.com/demo/#src=datagrid/celledit2.html
参考这个demo

但是我选择的值保存不住啊,
[attach]3728[/attach]
结束编辑必须这样写吗?

作者: factory    时间: 2014-1-13 17:34:10

wp260204287 发表于 2014-1-13 17:31
但是我选择的值保存不住啊,

结束编辑必须这样写吗?

选择的值保存不了,是什么意思?
作者: wp260204287    时间: 2014-1-13 17:38:18

factory 发表于 2014-1-13 17:34
选择的值保存不了,是什么意思?

但是我看你给我的demo,我选了值,界面显示就是我选的值啊。
[attach]3729[/attach]
图片上数值我改了,显示的就是我改的值啊,可是我选的值保存不住啊。网版主指点一下啊

作者: factory    时间: 2014-1-14 09:16:57

wp260204287 发表于 2014-1-13 17:38
但是我看你给我的demo,我选了值,界面显示就是我选的值啊。

图片上数值我改了,显示的就是我改的值啊, ...

单元格修改保存:http://www.miniui.com/demo/#src=datagrid/celledit.html

保存不了你就看你后台是不是保存代码错误
作者: wp260204287    时间: 2014-1-14 09:24:17

factory 发表于 2014-1-14 09:16
单元格修改保存:http://www.miniui.com/demo/#src=datagrid/celledit.html

保存不了你就看你后台是不是 ...

谢谢斑竹的回复啊,我现在就界面上[attach]3731[/attach]
数值为5 就不显示啊,还没到后台啊。

作者: factory    时间: 2014-1-14 09:27:18

wp260204287 发表于 2014-1-14 09:24
谢谢斑竹的回复啊,我现在就界面上
数值为5 就不显示啊,还没到后台啊。
...

看我上面贴的例子,是怎么把修改的数据获取出来传到后台的
作者: wp260204287    时间: 2014-1-14 09:31:21

factory 发表于 2014-1-14 09:27
看我上面贴的例子,是怎么把修改的数据获取出来传到后台的

斑竹啊,我现在就是想重新绘画Gridview的编辑器,以前是textbox现在想绘画成Spinner控件,你给了我一个例子,我试了,但是值修改后在界面上不显示啊,我还没到后台呢,我现在还是在前台啊。网斑竹指点一下啊
作者: felt    时间: 2014-1-14 09:37:54

wp260204287 发表于 2014-1-14 09:31
斑竹啊,我现在就是想重新绘画Gridview的编辑器,以前是textbox现在想绘画成Spinner控件,你给了我一个例 ...

把页面简化重现问题,打包上来我们看下
作者: wp260204287    时间: 2014-1-14 10:03:29

felt 发表于 2014-1-14 09:37
把页面简化重现问题,打包上来我们看下

[attach]3733[/attach]

我的示例已经导报上传了,望版主费心了,帮忙看一下啊。先谢谢版主啊

作者: lost    时间: 2014-1-14 10:20:46

wp260204287 发表于 2014-1-14 10:03
我的示例已经导报上传了,望版主费心了,帮忙看一下啊。先谢谢版主啊
...

e.column.editor = editor;不要注释掉spinner的值就可以显示了
作者: wp260204287    时间: 2014-1-14 10:27:27

本帖最后由 lost 于 2014-1-14 10:46 编辑
lost 发表于 2014-1-14 10:20
e.column.editor = editor;不要注释掉spinner的值就可以显示了

[attach]3734[/attach]  下载看下。是否满足你的要求
作者: factory    时间: 2014-1-14 10:45:30

wp260204287 发表于 2014-1-14 10:27
谢谢斑竹的回复啊,把这个e.column.editor = editor;放开,虽然显示,但是这一列都是spinner控件,但是 ...

http://www.miniui.com/demo/index.html#src=datagrid/celledit2.html
作者: lost    时间: 2014-1-14 10:48:41

wp260204287 发表于 2014-1-14 10:03
我的示例已经导报上传了,望版主费心了,帮忙看一下啊。先谢谢版主啊
...

做了个示例,下载看下[attach]3735[/attach]
作者: wp260204287    时间: 2014-1-14 11:12:52

lost 发表于 2014-1-14 10:48
做了个示例,下载看下

斑竹,那这样我的数据源都要加Eidter这个元素吧,我的数据源目前没有这个,要想实现这种效果,就没有其他办法了吗?
作者: felt    时间: 2014-1-14 11:33:09

wp260204287 发表于 2014-1-14 11:12
斑竹,那这样我的数据源都要加Eidter这个元素吧,我的数据源目前没有这个,要想实现这种效果,就没有其他 ...

再放个空白的textbox编辑器,你要返回spinner的就返回spinner,其他的返回textbox就可以了
if (e.field == "XM" && e.value == "5") {
            var editor = mini.get("textboxEditor")
            e.editor = editor;
            e.column.editor = editor;
        }
    else{
        var editor = mini.get("text1");    //放一个textbox编辑器
            e.editor = editor;
            e.column.editor = editor;
    }
作者: wp260204287    时间: 2014-1-14 15:35:16

felt 发表于 2014-1-14 11:33
再放个空白的textbox编辑器,你要返回spinner的就返回spinner,其他的返回textbox就可以了
if (e.field == ...

这样好像不行啊啊
作者: lost    时间: 2014-1-14 15:53:44

wp260204287 发表于 2014-1-14 15:35
这样好像不行啊啊
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.     <title>无标题页</title>

  5.       <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  6.       <link href="../demo.css" rel="stylesheet" type="text/css" />

  7.     <script src="../../scripts/boot.js" type="text/javascript"></script>
  8.       <style type="text/css">
  9.         html, body
  10.         {
  11.             font-size: 12px;
  12.             padding: 0;
  13.             margin: 0;
  14.             border: 0;
  15.             height: 100%;
  16.             width: 100%;
  17.         }
  18.         .aa.mini-textbox
  19.         {
  20.             height: 20px;
  21.             line-height: 20px;
  22.             font-size: 1px;
  23.         }
  24.     </style>
  25. </head>
  26. <body>
  27. <div class="mini-fit">
  28.         <div id="dept_grid" class="mini-datagrid" style="width: 100%; height: 100%;" allowresize="true"
  29.             url="TextFile3.txt" idfield="ID" allowcelledit="true"
  30.             allowcellselect="true" multiselect="true" >
  31.             <div property="columns">
  32.                 <div header="整车数据卡" headeralign="center">
  33.                     <div property="columns">
  34.                         <div type="checkcolumn" field="Xz" style="width: 6px;" truevalue="1" falsevalue="0">
  35.                             选择</div>
  36.                         <div field="XH" width="20" headeralign="center" allowsort="true">
  37.                             序号
  38.                             <input property="editor" class=" mini-textbox" />
  39.                         </div>
  40.                         <div field="XM" width="80" headeralign="center">
  41.                             项目
  42.                            
  43.                             </div>
  44.                   
  45.                        
  46.                     </div>
  47.                 </div>
  48.             </div>
  49.         </div>
  50.     </div>

  51.     <div style="display:none;">
  52.         <input class="mini-spinner" id="spinnerEditor"  />
  53.         <input class="mini-textbox" id="text1" />
  54.     </div>

  55. </body>
  56. </html>
  57. <script type="text/javascript">

  58.     mini.parse();

  59.     var grid = mini.get("dept_grid");
  60.    
  61.     grid.load();


  62.     function getEditor(record) {
  63.         if (record.type == "textbox") {
  64.             var editor = mini.get("spinnerEditor");
  65.             return editor;
  66.         }
  67.     }

  68.     grid.on("cellbeginedit", function(e) {

  69.     if (e.field == "XM" && e.value == "5") {
  70.         var editor = mini.get("spinnerEditor")
  71.                 e.editor = editor;
  72.                 e.column.editor = editor;
  73.             }
  74.         else{
  75.             var editor = mini.get("text1");    //放一个textbox编辑器
  76.                 e.editor = editor;
  77.                 e.column.editor = editor;
  78.         }
  79.     });


  80. grid.on("cellcommitedit", function (e) {
  81.     var record = e.record;
  82.     if (e.field == "XM") {
  83.         var format = e.record.format;
  84.         if (format) {
  85.             e.value = mini.formatDate(e.value, format);
  86.         }

  87.     }
  88. });
  89.   //试下
  90.    
  91. </script>
复制代码

作者: wp260204287    时间: 2014-1-14 16:53:12

lost 发表于 2014-1-14 15:53

[attach]3760[/attach]
希望斑竹指点一下啊

作者: felt    时间: 2014-1-14 17:14:23

wp260204287 发表于 2014-1-14 16:53
希望斑竹指点一下啊

ondrawcell是单元格绘制的时候触发的,oncellbeginedit才能编辑前触发
你现在要的效果是什么
作者: wp260204287    时间: 2014-1-14 17:22:35

felt 发表于 2014-1-14 17:14
ondrawcell是单元格绘制的时候触发的,oncellbeginedit才能编辑前触发
你现在要的效果是什么 ...

我现在有一列值,有的是文本型数据,也有的是数值型数据,我想把数值型数据有spinner显示,其它文本是Textbox
作者: felt    时间: 2014-1-14 17:32:24

wp260204287 发表于 2014-1-14 17:22
我现在有一列值,有的是文本型数据,也有的是数值型数据,我想把数值型数据有spinner显示,其它文本是Tex ...

oncellbeginedit
判断typeof e.value,数值返回spinnaer,文本返回textbox




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