jQuery MiniUI

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

为什么得不到这个对象? [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2012-10-25 18:09:54 |只看该作者 |倒序浏览
<title>办公用品申请</title>
    <link href="${ctx}/MINIUI/demo.css" type="text/css" rel="stylesheet" />
    <script src="${ctx}/MINIUI/scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
    <script src="${ctx}/MINIUI/scripts/miniui/miniui.js" type="text/javascript"></script>
    <link href="${ctx}/MINIUI/scripts/miniui/themes/default/miniui.css" rel="stylesheet" type="text/css" />
    <link href="${ctx}/MINIUI/scripts/miniui/themes/icons.css" rel="stylesheet" type="text/css" />

    <style type="text/css">
      #aaa { text-decoration:none;color:#000000;}
      #aaa:hover { color:#f00;}
    </style>
</head>
<body>
<div class="page-holder">
<div class="title_default_mod ">
<h2 class="title_left ">
  <b class="tit1">办公用品申请</b>
</h2>
</div>

<table width="100%" border="0" cellspacing="0" cellpadding="0" class="show_rows" align="center" >   
<tr>
    <th width="15%">申请人:<input type="hidden" id="flag"  value="<%=flag%>" /></th>
    <td width="35%"> <input id="applyUser"  name="applyUser" class="mini-textbox" value="<%=userName %>" allowInput="false" /></td>
    <th width="15%">申请日期:</th>
    <td width="35%"><input id="applyDate"  name="applyDate" class="mini-textbox" value="<%=str_date %>" allowInput="false" /></td>
</tr>
<tr>
    <th width="15%">申请部门:<input type="hidden" id="applyDept" name="applyDept" value="<%=orgOfUser%>" /></th>
    <td colspan="3"> <input name="deptName"  class="mini-combobox" data="deptNames" value="1" textField="text"  valueField="id" />
    </td>
</tr>
</table>

<p style="margin-top:2px; margin-bottom:2px;">办公用品:</p>

    <div id="datagrid1" class="mini-datagrid" style="width:100%;height:280px;"
            url="${ctx }/JsonDispatchAction.do?efFormEname=BMWF013&serviceName=BMWF010&methodName=queryStationeryApply" idField="guid"
            allowResize="true" pageSize="10"
            allowCellEdit="true" allowCellSelect="true" multiSelect="true"   
        >
        <div property="columns">
            <div width="5%" type="indexcolumn" >序号</div>
            
            <div field="typeId" id="typeId" class="mini-combobox"  width="25%"  headerAlign="center" >办公用品分类
                <input property="editor" class="mini-combobox" id="StationeryType"  textField="typeName" valueField="guid"
                      />               
            </div>
            
            <div field="materialId"  class="mini-combobox"   width="25%" headerAlign="center" >办公用品
                <input property="editor" class="mini-combobox" id="materialId" textField="stationeryName" valueField="guid"
                     url="${ctx}/BM/WF/bgtypeliandong.jsp?typeId=39e4d3473b61435d93716bb61bd6035a" />               
            </div>
            <div field="amonut"   width="10%" allowSort="true" >数量
                <input property="editor" id="i-0-amonut" class="mini-spinner" minValue="0" />
            </div>        
            <div field="StationeryUnit" width="10%" headerAlign="center" allowSort="true" >单位
            </div>
            <div field="applyDesc"  width="25%" headerAlign="center">备注
                <input property="editor" id="applyDesc" class="mini-textarea" minHeight="80"/>
            </div>                     
        </div>
  </div>
  
<p align="right" style="margin-top:10px;">
    <a class="mini-button">新增明细</a><span style="width:5px;">&nbsp;</span>
    <a class="mini-button">草稿</a><span style="width:5px;">&nbsp;</span>
    <a class="mini-button" >送批</a><span style="width:5px;">&nbsp;</span>
    <a class="mini-button" >返回</a></p>


</div>

<script type="text/javascript">
        var deptNamestr = $("#applyDept").val();
        var deptNames = [{ id: 1, text:deptNamestr}];
        
        mini.parse();
        var grid = mini.get("datagrid1");

        var StationeryType = mini.get("StationeryType");
        alert("StationeryTy23235351="+StationeryType);
</script>
结果为:

问题:为什么得不到这个对象?(需要这个对象去调用load()方法加载数据)

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2012-10-26 09:13:57 |只看该作者
有没有处于编辑状态?
编辑器在非编辑状态的时候是不会被创建的,当然得不到了

Rank: 2

板凳
发表于 2012-10-26 10:28:39 |只看该作者
factory 发表于 2012-10-26 09:13
有没有处于编辑状态?
编辑器在非编辑状态的时候是不会被创建的,当然得不到了 ...

有没有设置“编辑器”状态的字段? 我需要根据不同的登录状态加载不同的初始信息

Rank: 8Rank: 8

地板
发表于 2012-10-26 10:40:17 |只看该作者
常常 发表于 2012-10-26 10:28
有没有设置“编辑器”状态的字段? 我需要根据不同的登录状态加载不同的初始信息 ...

只是加载不同单元格的数据,你可以用updateRow ( row, rowData )来更新数据,不需要获得编辑器,再去改变单元格数据

Rank: 2

5#
发表于 2012-10-26 10:53:25 |只看该作者
factory 发表于 2012-10-26 10:40
只是加载不同单元格的数据,你可以用updateRow ( row, rowData )来更新数据,不需要获得编辑器,再去改变 ...

我现在要实现这样的效果:
1.“办公用品分类”和“办公用品”是二级联动的
2.如果用户在数据库没有记录,就默认加载数据,其中“办公用品分类”默认选择“打印复印纸”,“办公用品”也是可选的,默认值是一个提示信息“--请输入办公用品--”
3.如果用户在数据库有记录,就将数据加载出来。其中“办公用品分类”和“办公用品”为数据库字段,并且两列可以编辑修改的。

望解决,甚急!

Rank: 2

6#
发表于 2012-10-26 10:58:46 |只看该作者
本帖最后由 常常 于 2012-10-26 11:00 编辑
factory 发表于 2012-10-26 10:40
只是加载不同单元格的数据,你可以用updateRow ( row, rowData )来更新数据,不需要获得编辑器,再去改变 ...

补充:

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

7#
发表于 2012-10-26 11:15:41 |只看该作者
常常 发表于 2012-10-26 10:58
补充:


你监听oncellbeginedit事件,就是当你在编辑的时候,再去根据用户的不同,来加载combobox的默认值,
oncellbeginedit=“oncellbeginedit”
function oncellbeginedit(e){
e.editor  //当前编辑的单元格的编辑器对象
}

Rank: 2

8#
发表于 2012-10-26 13:00:19 |只看该作者
factory 发表于 2012-10-26 11:15
你监听oncellbeginedit事件,就是当你在编辑的时候,再去根据用户的不同,来加载combobox的默认值,
once ...


        <div id="datagrid1" class="mini-datagrid" style="width:100%;height:280px;"
                url="${ctx }/JsonDispatchAction.do?efFormEname=BMWF013&serviceName=BMWF010&methodName=queryStationeryApply" idField="guid"
                allowResize="true" pageSize="10"
                allowCellEdit="true" allowCellSelect="true" multiSelect="true"   
            >
        <div property="columns">
            <div width="5%" type="indexcolumn" >序号</div>
            
            <div field="typeId" id="typeId" class="mini-combobox"  width="25%"  headerAlign="center" >办公用品分类
                <input property="editor" class="mini-combobox" id="StationeryType"  textField="typeName" valueField="guid"
                                 url="${ctx}/BM/WF/bgtypeload.jsp"  onvaluechanged="liandong();"/>               
            </div>
                       
                        <div field="materialId"  class="mini-combobox"   width="25%" headerAlign="center" >办公用品
                <input property="editor" class="mini-combobox" id="materialId" textField="stationeryName" valueField="guid"
                                        oncellbeginedit=“oncellbeginedit”  onvaluechanged="liandong2();" />               
            </div>
                        <div field="amonut"   width="10%" allowSort="true" >数量
                <input property="editor" id="i-0-amonut" class="mini-spinner" minValue="0" />
            </div>        
            <div field="StationeryUnit" width="10%" headerAlign="center" allowSort="true" >单位
            </div>
            <div field="applyDesc"  width="25%" headerAlign="center">备注
                <input property="editor" id="applyDesc" class="mini-textarea" minHeight="80"/>
            </div>                     
        </div>
  </div>
事件没有得到响应。
并且:我要的效果不是去编辑单元格时才加载,而是页面加载的时候就加载了。(即提供给用品一张申请单,其中“办公用品分类”和“办公用品”都有默认值了)

Rank: 2

9#
发表于 2012-10-26 13:01:31 |只看该作者
factory 发表于 2012-10-26 11:15
你监听oncellbeginedit事件,就是当你在编辑的时候,再去根据用户的不同,来加载combobox的默认值,
once ...


        <div id="datagrid1" class="mini-datagrid" style="width:100%;height:280px;"
                url="${ctx }/JsonDispatchAction.do?efFormEname=BMWF013&serviceName=BMWF010&methodName=queryStationeryApply" idField="guid"
                allowResize="true" pageSize="10"
                allowCellEdit="true" allowCellSelect="true" multiSelect="true"   
            >
        <div property="columns">
            <div width="5%" type="indexcolumn" >序号</div>
            
            <div field="typeId" id="typeId" class="mini-combobox"  width="25%"  headerAlign="center" >办公用品分类
                <input property="editor" class="mini-combobox" id="StationeryType"  textField="typeName" valueField="guid"
                                 url="${ctx}/BM/WF/bgtypeload.jsp"  onvaluechanged="liandong();"/>               
            </div>
                       
                        <div field="materialId"  class="mini-combobox"   width="25%" headerAlign="center" >办公用品
                <input property="editor" class="mini-combobox" id="materialId" textField="stationeryName" valueField="guid"
                                        oncellbeginedit=“oncellbeginedit”  onvaluechanged="liandong2();" />               
            </div>
                        <div field="amonut"   width="10%" allowSort="true" >数量
                <input property="editor" id="i-0-amonut" class="mini-spinner" minValue="0" />
            </div>        
            <div field="StationeryUnit" width="10%" headerAlign="center" allowSort="true" >单位
            </div>
            <div field="applyDesc"  width="25%" headerAlign="center">备注
                <input property="editor" id="applyDesc" class="mini-textarea" minHeight="80"/>
            </div>                     
        </div>
  </div>

oncellbeginedit事件没有得到响应。
并且:我要的效果不是去编辑单元格时才加载,而是页面加载的时候就加载了。(即提供给用品一张申请单,其中“办公用品分类”和“办公用品”都有默认值了)

Rank: 8Rank: 8

10#
发表于 2012-10-26 13:37:37 |只看该作者
常常 发表于 2012-10-26 13:01
序号
            
            办公用品分类

oncellbeginedit事件是表格事件,要写在表格上面的。
你的表格单元格的值是多少,弹出下拉框的时候回默认选中这条数据的。
比如你的表格一开始默认的值是 鼠标,那么编辑时候的combobox也是这个值的。这个你可以去看 单元格编辑 示例 的国家这一列。默认单元格是日本,那么你编辑的时候,combobox值就是日本
如果你要操作编辑器,你只能编辑的时候才能获取到。
如果是表格单元格的不同内容,你完全可以根据不同用户,在后台处理好,返回不同的数据就可以了

Archiver|普加软件

GMT+8, 2024-11-26 23:16 , Processed in 1.048616 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部