0

私はいくつかの異なる記事を見てきましたが、それらはすべて同じことを示唆しているようです:

「必要なクエリ パラメータで URL を作成し、この新しい URL でターゲット iFrame を設定し、この新しいページにリクエストを読み取らせます」

カスタム ASPX ページを使用せずにこれを行う方法があるかどうか疑問に思っていましたか?

基本的に、フォームのいくつかの値に基づいて、iFrame または html Web リソースにテキストを動的に表示したいと考えています。

4

1 に答える 1

4

ASPX の使用を義務付ける SDK はありません。実際、CRM 2011 では、ASP.Net ページをホストするために何かを見つける必要があるため、推奨されていません。

基本的な HTML ページ (CRM で Web リソースとして作成) を使用すると、HTML ドキュメントの HEAD で JScript を宣言できます (または、JScript Web リソースを参照することをお勧めします)。その JScript は、iFrame 経由で送信されたクエリ文字列パラメーターを読み取り、そこから必要なことを何でも実行できます。

SDK では、カスタム クエリ文字列パラメーター自体をエンコードし、dataパラメーターを介して送信する必要があると記載されていることに注意してください。

<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>Example page</TITLE>
<META charset=utf-8></HEAD>
<BODY style="BACKGROUND-COLOR: #f6f8fa; MARGIN: 0px; FONT-FAMILY: Segoe UI" contentEditable=true onload="doStuff">
<SCRIPT type=text/jscript>

function doStuff(){
    getQueryStrings();
    alertOrganisationName();
}

function alertOrganisationName(){
    alert(window.parent.Xrm.Page.context.getOrgUniqueName());
}

function getQueryStrings() {
    var message = document.getElementById("myOutputArea");
    var dataParameterString, querystring;
    // get data from querystring
    if (window.location.search != "") {
        querystring = window.location.search.substr(1).split("&");
        for (var i in querystring) {
            querystring[i] = querystring[i].replace(/\+/g, " ").split("=");
        }
        //look for the parameter named 'data'
        for (var i in querystring) {
            if (querystring[i][0].toLowerCase() == "data") {
                dataParameterString = querystring[i][1];
                break;
            }
        }

        message.innerText += dataParameterString;

    } else {
        message.innerText = "No details were specified in the querystring.";
        alert("ERROR: " + message.innerText);
    }
}       
 </SCRIPT>
 <DIV id="myOutputArea"></DIV>
</BODY></HTML>
于 2012-05-24T11:31:02.030 に答える