在 Dynamics CRM 中,如何获取高级查找FetchXml查询

分享于 

3分钟阅读

Web开发

  繁體 雙語
对于我的一个应用程序,我需要获得所有记录,在AdvancedFind中找到并管理这些记录。 如果记录计数小于网格视图的最大显示数目,则没有问题。 如果这些记录超过了这个数字? 我的solutios是通过使用JavaScript获得高级查找FetchXml查询并通过网格按钮在自定义aspx页面上评估它。 下面是需要在定制网格 button.In Crm Sdk中作为JavaScript属性放置的JavaScript代码,你可以在网格中找到如何添加自定义按钮。

function getAdvFindFetchXml()<br />{<br /> if(document.getElementById('FetchXml'))<br /> {<br /> return document.getElementById('FetchXml').value;<br /> }<br /> else<br /> {<br /> return '';<br /> }<br />}<br />var sUrl = '/ISV/YourPage.aspx';<br />var sWin = window.open(sUrl,'','height=650,width=750,toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,modal=yes');<br /><br />



现在,需要创建自定义aspx页来处理事件和FetchXml查询。 1-Create aspx页。2-Add 中的asp:textbox 或者 asp:hiddenfield 名为"crmadvfindfetchxml"。 在代码的</html> 标记之前,3-Copy 并粘贴javascript代码 below,你的代码将为你的控件分配高级的。

<script type="text/javascript" language="javascript"><br/>document.getElementById('crmAdvFindFetchXml').value=window.opener.getAdvFindFetchXml();<br/></script><br /><br />



在页面上单击鼠标右键并创建 post back按钮单击按钮。 5 - 在 asp:button 中复制并粘贴代码 below 单击事件。

string fetchXml=crmAdvFindFetchXml.Text.Trim();<br/>CrmService crmService=new CrmService();<br/>/*<br/>....<br/>init your CrmService regarding your crm instance<br/>....<br/>*/<br/><br/>crmService.Fetch(fetchXml);<br/>XmlDocument xmlDoc = new XmlDocument();<br/>xmlDoc.LoadXml(result);<br/>XmlNodeList xmlNodes=xmlDoc.GetElementsByTagName("result");<br/> foreach (XmlNode item in xmlNodes)<br/> {<br/> if (item["accountid"]!= null) <br/>/* accountid is just for example, it can be any fieldid which is retrieved in fetchxml for your needs */<br/> {<br/> Response.Write(item["accountid"].InnerText);<br/> }<br/> }<br/>



cheers,



相关文章