如何将当前实体ID传递给我的Silverlight Web资源?

时间:2015-07-02 08:42:37

标签: javascript silverlight dynamics-crm

我的CRM 2015在线上有一个silverlight网络资源,我使用javascript webresource打开。此Web资源通过Opportunity实体的功能区按钮进行。我需要将当前打开的机会传递给silverlight Web资源。我设法获得了OpportunityId但仍然无法将其传递给Silverlight网络资源。

我的javascript网络资源代码:

function OpenSilverLightControl()
 {
     var Id=Xrm.Page.data.entity.getId();

    window.open('https://crm.mycrm.com//WebResources/new_/MyCRMQuoteTestPage.html',null,500,600);
 }

编辑:

我尝试使用QueryString,但它会产生内部服务器错误。

这是我的链接:https://crm.mycrm.com//WebResources/new_/mycrmOpportunityQuoteTestPage.html?oppid= {7A594863-1C1F-E511-80C8-02E7484A2B2F}

也是这样的:https://crm.mycrm.com//WebResources/new_/mycrmOpportunityQuoteTestPage.html?oppid=7A594863-1C1F-E511-80C8-02E7484A2B2F

两者都提供" 500 - 内部服务器错误"

3 个答案:

答案 0 :(得分:1)

这通常使用查询字符串变量

来完成
function OpenSilverLightControl(){
    var Id=Xrm.Page.data.entity.getId();
    var url = 'https://crm.mycrm.com//WebResources/new_/MyCRMQuoteTestPage.html?elementid=' + Id;

    window.open(url,null,500,600);
}

然后在Silverlight应用程序中,您可以读取查询字符串值

答案 1 :(得分:1)

将其添加为查询字符串并在Silverlight webresponse中解析它?

你可以这样做:

window.open('https://crm.mycrm.com//WebResources/new_/MyCRMQuoteTestPage.html?id='+id' 

在您的Silverlight资源中:

function getQueryString (name) {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars[strName];
}

并调用函数:getQueryString("id");

答案 2 :(得分:1)

来自{349 {3}}问题的user3491963答案 以及当前问题中的jasonscript和Unlockedluca答案,
我能够使用 Querystring参数但它必须使用名称&#34; 数据&#34;任何其他名字都不会起作用。