Dynamic CRM 2013学习笔记(十六)用JS控制Tab可见,可用
一个Form里经常会有好几个Tab,有时要根据一些条件设置哪些Tab可用,可见。下面就介绍下如何用JS对Tab进行控制。
1. 控制可见
function setTabVisableByName(tabName, flag) {var control = Xrm.Page.ui.tabs.get(tabName);control.setVisible(flag);}
这里flag是true或false
2. 控制可用
看了上面的可见代码,是不是以为可用也这么简单呢?其实我们把上面的setVisible改成setDisabled,会报错:
control.setDisabled is not a function
先看下Xrm.Page 的对象层次结构:

可以看到 tabs –> sections –> controls 这个层次结构。
于是就写了下面的代码:
function disableTab(tabName, flag) {debugger;var sections = Xrm.Page.ui.tabs.get(tabName).sections.get();for (var j in sections) {var controls = sections[j].controls.get();for (var i in controls) {var control = controls[i];var controlType = control.getControlType();if (controlType != "iframe" && controlType != "webresource" && controlType != "subgrid") {if (control != null && control.getDisabled() == !flag) {control.setDisabled(flag);}}}}}
其中有一行是判断control的类型:
if (controlType != "iframe" && controlType != "webresource" && controlType != "subgrid") {
这行代码是后来加上的,因为当时出现了一个很奇怪的现象,新建或查看记录时,没问题,但新建保存时总是会报这个错误:
control.setDisabled is not a function
加上这行后就ok了,这个问题当时花了我好长时间。
如果是要把整个form都禁用呢,可以用下面的代码,更简洁:
Xrm.Page.ui.controls.forEach(function (control, index) {var controlType = control.getControlType();if (controlType != "iframe" && controlType != "webresource" && controlType != "subgrid")) {control.setDisabled(flag);}});
Dynamic CRM 2013学习笔记(十六)用JS控制Tab可见,可用的更多相关文章
- Dynamic CRM 2013学习笔记(六)备份和恢复
这节我们将讨论下怎么维护CRM,包括以下主要内容: 备份CRM DB 备份CRM 系统 恢复CRM DB 恢复 CRM 系统 一. 备份CRM DB 下面的步骤将为CRM DB创建一个维护计划 ...
- Dynamic CRM 2013学习笔记(十七)JS读写各种类型字段方法及技巧
我们经常要对表单里各种类型的字段进行读取或赋值,下面列出各种类型的读写方法及注意事项: 1. lookup 类型 清空值 var state = Xrm.Page.getAttribute(" ...
- Dynamic CRM 2013学习笔记 系列汇总
这里列出所有 Dynamic CRM 2013学习笔记 系列文章,方便大家查阅.有任何建议.意见.需要,欢迎大家提交评论一起讨论. 本文原文地址: Dynamic CRM 2013学习笔记 系列汇总 ...
- Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色
上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...
- Dynamic CRM 2013学习笔记(四十六)简单审批流的实现
前面介绍过自定义审批流: Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示 Dynamic CRM 2013学习笔记(二十一)自定义审批流2 - 配置按钮 Dynamic ...
- Dynamic CRM 2013学习笔记(二十)字段改变事件的二种实现方法
CRM里有二种方式实现字段change事件,一种是在form里,一种完全通过js来实现.本文介绍下二者的用途及区别. 1. Form里用法 这种方式估计其实也是添加一个js的function. 这种方 ...
- Dynamic CRM 2013学习笔记(二十五)JS调用web service 实现多条记录复制(克隆)功能
前面介绍过如何克隆一条当前的记录: Dynamic CRM 2013学习笔记(十四)复制/克隆记录 , 主要是通过界面上加一个字段,单击form上的clone 按钮时,改变这个字段的值以触发插件来实现 ...
- Dynamic CRM 2013学习笔记(二十九)报表设计:reporting service 报表开发常见问题
在报表开发过程中,经常会遇到各种各样的问题,比如The report cannot be displayed. (rsProcessingAborted),一点有意义的提示都没有:再就是分页问题,经常 ...
- Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置
上次介绍了<Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示> 以及如何配置自定义审批流的按钮:<Dynamic CRM 2013学习笔记(二十一)自定义 ...
随机推荐
- 关于DCOM的安全性
关于DCOM的安全性 DCOM的安全性设置在注册表中. 2. 通过DCOMCNF.exe可以配置
- 2.openssl rsa/pkey
分别是RSA密钥的处理工具和通用非对称密钥处理工具.它们用法基本一致,所以只介绍openssl rsa. [root@xuexi tmp]# man rsa NAME rsa - RSA key pr ...
- 【229】Raster Calculator - 栅格计算器
参考:分段函数进行复制,利用语句 参考:ArcGIS栅格计算器 - CSDN 参考:ArcGIS栅格计算器con条件函数使用 参考:ArcGIS栅格计算器 - 电脑玩物 ("lyr" ...
- WebForm 简单控件、复合控件
简单控件: Label:被编译成span 样式表里设置lable的高度: display:inline-block; Text --文本 ForeColor --字体颜色 Visible -- ...
- python 注册
1.打开网址,点击 获得注册码 http://idea.qinxi1992.cn/ 2.help -- register 第二步: http://jetbrains.tencent.click/ ...
- js基本常识了解
http://www.cnblogs.com/Yue0327/p/5441773.html
- LoadRunner参数化详解(转)
距离上次使用loadrunner 已经有一年多的时间了.初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又想有一把好的利器毕竟可以帮助自己 ...
- Java NIO教程 Selector
这次我们开讲非阻塞I/O中的Selector,它需要配合非阻塞的TCP和UDP来使用.首先我们先简单讲一下TCP和UDP的非阻塞通道. 非阻塞I/O通道 在上代码前我们先讲解一些最基本的知识.TCP和 ...
- gdal编译C#开发版本
gdal的编译比较麻烦,情况有很多种,今天我编译的gdal遇到的问题就和以前的有点不一样,仅供参考借鉴. 1.下载gdal源码 gdal源码下载地址:https://trac.osgeo.org/gd ...
- JS之延迟处理
$(document).ready(function () { $("#zidong3,#zidong1").click(function () { $("#zidong ...