MSCRM2011用JS直接调用Lookup查找页面并加入自定义筛选器
2014-08-28 16:11
295 查看
在MSCRM2011中,可以用Xrm.Page.getControl("字段名").addCustomView(viewId, entityName, viewDisplayName, fetchXml, layoutXml, isDefault)给Lookup控件的查找页面加入自定义筛选器。 使用以下代码可在没有Lookup控件的情况下,直接调用查找页面并加入自定义筛选器:
var entityName = "account"; //实体名 var etc = 1; //实体ObjectTypeCode var CustomView = { name: "自定义视图", recordType: etc }; CustomView.id = "{65EC9B45-EE81-4F89-BAF6-E8603FF8E1E4}"; //自定义视图id(可随意,不要与系统的重复即可) CustomView.fetchXml = //不会写fetchXml可用高级查找进行帮助 "<fetch version=\"1.0\" output-format=\"xml-platform\" mapping=\"logical\" distinct=\"false\">" + "<entity name=\"" + entityName + "\">" + "<attribute name=\"name\" />" + "<attribute name=\"ownerid\" />" + "<filter type=\"and\">" + "<condition attribute=\"name\" operator=\"eq\" value=\"客户名称\" />" + "</filter>" + "</entity>" + "</fetch>"; CustomView.layoutXml = //显示的视图 "<grid name='resultset' icon='1' preview='1'>" + "<row name='result' id='" + entityName + "id'>" + "<cell name='name' width='200' />" + "<cell name='ownerid' width='200' />" + "</row>" + "</grid>"; var url = Xrm.Page.context.prependOrgName("/_controls/lookup/lookupinfo.aspx") + "?AllowFilterOff=0" //是否允许关闭筛选器 + "&objecttypes=" + etc //实体ObjectTypeCode + "&DefaultViewId=" + CustomView.id //默认视图id + "&DisableQuickFind=1" //是否禁用搜索按钮 + "&DisableViewPicker=1" //是否禁用视图选择 + "&LookupStyle=single" //单选还是多选 + "&ShowNewButton=0" //是否显示新建按钮 + "&ShowPropButton=1" //是否显示属性按钮 + "&browse=0"; //如果设为0,则关闭并隐藏筛选器 var args = { availableViews: null, customViews: [], items: [] }; args.customViews.push(CustomView); var retObj = window.showModalDialog(url, args, "dialogWidth:600px;dialogHeight:600px;help:0;status:1;scroll:0;center:1;resizable:yes;");
返回值中,主数据可用 retObj.items[0].id 和 retObj.items[0].name 获取。
其他数据以Json格式返回,可惜的是关联字段只有显示值,没有GUID(如ownerid只有用户名,没有用户GUID)
if (retObj != undefined) { var accountid = retObj.items[0].id; //客户GUID var accountName = retObj.items[0].name; //客户名称 //由于视图列中定义了客户名称列,也可如下获取客户名称 //var accountName = eval("(" + retObj.items[0].keyValues + ")").name.value; var ownerName = eval("(" + retObj.items[0].keyValues + ")").ownerid.value; //负责人姓名 }
注:如果在自定义的面中要调用Lookup的查找页面并加入筛选器, 需注意URL地址在AD和IFD模式部署中可能有所差别,以上代码中 的 Xrm.Page.context.prependOrgName 将不再可用。
相关文章推荐
- AGS9.2中Toolbar的自定义ToolbarItem直接调用ADF的JS方法总结
- 修改上一篇文章的node.js代码,支持调用自定义页面
- AGS9.2中Toolbar的自定义ToolbarItem直接调用ADF的JS方法总结
- MSCRM 2011 自定义页面 CrmService 实现增,删,改,查需要注意的
- 在页面的js直接调用后台传到页面的数据
- 页面加入_JS,CSS使用,#include添加文件,缓存页面,页面间传递汉字,IsPostBack控制页面的加载,自定义错语页面
- asp.net 子页面调用外部 js
- 网易滑动效果!一个js,页面任意滑动数量、任意调用
- 用户控件包含一个搜索功能,但是在调用页面中按回车时无法直接提交这个表单,只有鼠标点击才提交,如何解决?
- asp.net页面中调用js文件注意事项
- C++直接调用IE对话框窗体显示页面
- [原](源码)JS OOP 实现页面浮动图片,支持多图同时浮动,简单调用
- 网站被黑的假象--ARP欺骗之页面中加入一段js
- 在ASP.NET Atlas中调用Web Service——直接在ASPX页面上暴露Web Method
- 页面回传与js调用服务端事件、PostBack的原理
- 解决gb2312页面调用utf-8页面的js,显示乱码!
- .net页面调用JS时出现乱码
- 简单ASP.NET AJAX 客户端应用:用JS直接调用WebServices方法
- 利用js进行跨页面调用
- 在ASP.Net中利用JS调用Aspx页面的输出