在执行方法和Web资源中获取传递过来参数的值
生活随笔
收集整理的這篇文章主要介紹了
在执行方法和Web资源中获取传递过来参数的值
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
關(guān)注本人微信和易信公眾號(hào): 微軟動(dòng)態(tài)CRM專家羅勇 ,回復(fù)228或者20161026可方便獲取本文,同時(shí)可以在第一間得到我發(fā)布的最新的博文信息,follow me!我的網(wǎng)站是 www.luoyong.me 。
首先我們來(lái)看看通過(guò)getQueryStringParameters來(lái)獲取參數(shù)的值。點(diǎn)擊子網(wǎng)格的加號(hào)進(jìn)行增加記錄的時(shí)候,會(huì)發(fā)現(xiàn)URL中是類似這樣的,https://demo.luoyong.me/main.aspx?etc=10008&extraqs=%3f_CreateFromId%3d%257bB707DE1B-CF99-E611-8161-000D3A80C8B8%257d%26_CreateFromType%3d10007%26etc%3d10008&histKey=881427917&newWindow=true&pagetype=entityrecord#908569294? 這里就可以通過(guò)getQueryStringParameters來(lái)獲取參數(shù)_CreateFromId的值,這個(gè)值也就是自網(wǎng)格對(duì)應(yīng)父記錄的ID。代碼如下: Xrm.Utility.alertDialog("父記錄ID=" + Xrm.Page.context.getQueryStringParameters()._CreateFromId); 我們知道每個(gè)調(diào)用的函數(shù)都可以做如下的設(shè)置: 如果選中了 將執(zhí)行上下文作為第一個(gè)參數(shù)傳遞 ,那么執(zhí)行函數(shù)的第一個(gè)參數(shù)的值將會(huì)傳遞它過(guò)來(lái)。 將傳遞給函數(shù)的以都好分隔的參數(shù)列表,我們可以以逗號(hào)分隔傳遞給執(zhí)行函數(shù)參數(shù),我這里第一個(gè)是傳遞數(shù)字參數(shù)10,第二個(gè)是傳遞字符串類型的參數(shù),第三個(gè)也是字符串類型的參數(shù),但是我希望在代碼中可以轉(zhuǎn)換為日期,所以我使用了類似 2016-01-01 00:00:00 的格式字符串來(lái)傳遞。然后執(zhí)行的代碼可能就類似如下了: function OnLoad(eContext, numberPara, stringPara, datePara) {Xrm.Utility.alertDialog("傳遞過(guò)來(lái)的數(shù)字參數(shù)numberPara值是" + numberPara + ",類型是" + typeof (numberPara) + ";\n傳遞過(guò)來(lái)的字符參數(shù)stringPara值是" + stringPara + ",類型是" + typeof (stringPara) + ";\n傳遞過(guò)來(lái)的日期參數(shù)datePara值是:" + new Date(datePara).toLocaleString()); }?
當(dāng)然啦,插入的Web資源還可以傳遞參數(shù),我這里設(shè)置如下: ? 可以看到既選擇了 將記錄對(duì)象類型代碼和唯一標(biāo)識(shí)符作為參數(shù)傳遞 ,還在 自定義參數(shù)(數(shù)據(jù)) 部分定義了一些自定義參數(shù)傳遞過(guò)去,我可以使用如下代碼獲取到值: var queryStrings = GetGlobalContext().getQueryStringParameters(); var alertStr = []; for (var prop in queryStrings) {if (prop.toLocaleLowerCase() != "data") {alertStr.push("傳遞的參數(shù)名是" + prop + ";參數(shù)值是:" + queryStrings[prop]);}else {var dataParaArray = queryStrings[prop].toString().split('&');for (var i = 0; i < dataParaArray.length; i++) {alertStr.push("傳遞的參數(shù)名是" + dataParaArray[i].split('=')[0] + ";參數(shù)值是:" + dataParaArray[i].split('=')[1]);}} } Xrm.Utility.alertDialog(alertStr.join("\n"));?
獲取到的結(jié)果如下: ? ?可以看到如果選中了 將記錄對(duì)象類型代碼和唯一標(biāo)識(shí)符作為參數(shù)傳遞 ,則會(huì)傳遞參數(shù)OrgLCID,UserLCID, id, orgname, type, typename 參數(shù)過(guò)來(lái)。 注意,從V9.0 開(kāi)始,Xrm.Page.context.getQueryStringParameters 不再推薦使用了(請(qǐng)參考官方的 Important changes (deprecations) coming in Dynamics 365 Customer Engagement ),可以參考下面的函數(shù)來(lái)獲取,函數(shù)來(lái)自David Walsh?的?Get Query String Parameters with JavaScript 。 function getUrlParameter(name) {name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');var results = regex.exec(location.search);return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));};?
轉(zhuǎn)載于:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_Pass_Parameter_to_Web_Resource_Event_Handler.html
總結(jié)
以上是生活随笔為你收集整理的在执行方法和Web资源中获取传递过来参数的值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ZOJ4118 Stones in th
- 下一篇: Oracle关于TX锁的一个有趣的问题