随笔分类 -  Javascript

摘要:页面上有一个Lookup field,当选择一个记录时,同时要把这个记录的其他值也带到本页面来,其中有好多是Lookup来的。开始我用LinkEntity来取得它们的名字值,但是后来发现LinkEntity有数量限制,每条查询语句只能有10个LinkEntity,超过就报错,Advanced Find里也是一样的。所以,用LinkEntity并不是一个好办法,而且我只是要取得一个名字的值而已,直觉告诉我不用那么麻烦的。研究了一下,其实Fetchxml取的Lookup的值,不仅有GUID,名字的值也取到了,只不过名字值要经过一定的步骤转化才能拿到。下面是具体方法:首先,我们从返回的xml对象中取 阅读全文
posted @ 2012-05-28 12:58 Joy Zhong 阅读(2116) 评论(0) 推荐(1)
摘要:需求:页面上有一个字段是Account类型的Lookup,另一个字段是Contact类型的Lookup。要求打开Contact lookup时只显示Account的Primary Contact的过滤视图。分析:要做到这个功能,首先要重写(增加)Contact lookup的“显示查找视图”的事件;然后,在页面加载的时候就要把这个事件添加到Contact lookup上,在Account的值发生变化时也要做相应的改变,比如Account的值被清空的情况下,我们的自定义过滤视图就应该显示全部的Contact,所以这时要再次改写“显示查找视图”的事件。步骤:(1)创建一个Javascript文件, 阅读全文
posted @ 2012-04-12 16:37 Joy Zhong 阅读(909) 评论(0) 推荐(0)
摘要:function UserHasRole(roleName){ var serverUrl = Xrm.Page.context.getServerUrl(); var oDataEndpointUrl = serverUrl + "/XRMServices/2011/OrganizationData.svc/"; oDataEndpointUrl += "RoleSet?$top=1&$filter=Name eq '" + roleName + "'"; var service = GetRequestOb 阅读全文
posted @ 2012-03-09 12:33 Joy Zhong 阅读(348) 评论(0) 推荐(0)
摘要:很拗口的标题 -_-|||需求:页面上有两个同样的Field——accountnumber,想Disable其中一个,究竟为什么有这么傻叉的需求就不讨论了,只关注于如何实现。看似简单的问题,实际做的时候却遇到问题,一开始,当然是用“Xrm.Page.getControl("accountnumber").setDisabled(true);”,结果发现不行,只有排在前面的那个Field被Disable了,另一个还是enable的。为什么另一个不行呢?我用了曲折的方法debugging得到结论:function disablenumber() { debugger; //先取 阅读全文
posted @ 2012-03-06 12:06 Joy Zhong 阅读(296) 评论(0) 推荐(0)
摘要:CRM2011有一个新特性: field sercurity, 可以做到隐藏密码的目的,但是——对管理员无效。一般来说,如果是密码,不管是谁,输入的时候,应该只看到“*****”这样的。在CRM2011里似乎没有办法可以达到这个目的。于是乎我用了一个比较曲折的方法来实现。在Form onload事件中加入并调用“HidePassword()”;在Form onSave时间中调用“SetNewPassword()”。 1 var pwd; 2 function HidePassword() 3 { 4 crmForm.all.arw_password.style.display = " 阅读全文
posted @ 2011-12-23 14:29 Joy Zhong 阅读(379) 评论(1) 推荐(0)