日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

在CRM定制中常用的Javascript

發布時間:2025/5/22 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在CRM定制中常用的Javascript 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CRM Client Programming Tips

?前段時間一直在做CRM4.0的相關開發,其中大多數都是在做Customization和工作流,其實CRM的開發本來大多都是Customization,而在做Customization時更多的我們通常又會選擇用Javascript來實現一些邏輯,包括有關界面樣式的更改,動態生成一些控件,調用Web Service,強制提交隱藏字段,客戶端事件通知等等。這里簡單的將一些常用的Javascript操作做一總結,當然,這只是一部分,大家一起慢慢增加。至于復雜一些的像動態生成控件/字段,這里先不提及。客戶端操作Web Service已經在另外一篇文章中提及。

1.?????? Lookup的操作

Lookup類型在CRM里是個很常用而且有些略顯怪異的類型。根據生成的HTML來看,其實它本身也就是一個Input和一個Image而已,至于它的玄機在別的blog里也有過很多的解釋,這里不盡闡述,但需要明白的是其實一個lookup就類似于Array,里便包含了多個Item(Object).如此理解之后我們可以很輕易的給lookup賦初始值:

?

//Create an array to set as the DataValue for the lookup control.

?? var lookupData = new Array();

//Create an Object add to the array.

?? var lookupItem= new Object();

?

//Set the id, typename, and name properties to the object.

?? lookupItem.id = '{EEEA32C6-7430-DD11-BBDE-00155D012229}';

?? lookupItem.typename = 'systemuser';

?? lookupItem.name = 'Tony Park';

?

// Add the object to the array.

?? lookupData[0] = lookupItem;

?

// Set the value of the lookup field to the value of the array.

?? crmForm.all.new_financeofficerid.DataValue = lookupData;

?

在獲取lookup的值時,需要分清獲取的是value還是text,這是根據nameid來分的:

?

var lookupItem = new Array;

?

// Get the lookup for the primarycontactid attribute on the account form.

lookupItem = crmForm.all.primarycontactid.DataValue;

?

// If there is data in the field, show it in a series of alerts.

if (lookupItem[0] != null)

{

??? // Display the text value of the lookup.

??? alert(lookupItem[0].name);

?

??? // Display the entity type name.

??? alert(lookupItem[0].typename);

?

??? // Display the GUID of the lookup.

??? alert(lookupItem[0].id);

?

??? // Display the entity type code of the lookup. A value of 1 equals account, and a value of 2 equals contact.

??? alert(lookupItem[0].type);

}

?

2.?????? 給客戶端控件添加事件

除了在定制的時候我們可以選擇一個控件的onChange事件,我們仍然可以在onLoad事件里通過Javascript給控件添加自己的事件處理程序。例如一下代碼片段給一個checkBox控件添加了onClick事件。

var clickEventHandler = function {}

clickEventHandler.prototype =

{

??? click:function(checked)

??? {

??????? var intCount = parseInt(crmForm.all.numberofdaysrequested.DataValue);

??????? if (intCount == null) intCount = 0;

?

??????? if (checked)

??????? {

??????????? intCount += 1;

??????? }

??????? else

??????? {

??????????? if (intCount > 0) intCount -= 1;

??????? }

?

??????? crmForm.all.numberofdaysrequested.DataValue = intCount;

??? }

}

?

crmForm.all.new_otherreasons.disabled = true;

?

crmForm.all.new_monday.onclick = function()

{

???? clickEventHandler.click(crmForm.all.new_monday.DataValue);

}

?

3.?????? 隱藏字段的強制提交ForceSubmit

Form上沒有的字段(但實體對象上有)或者隱藏的字段,默認情況下CRM是不會提交這個值,只有在設置了ForceSubmit=true之后才會提交。如一下語句強制將new_name屬性設置并提交。

//Force submit the disabled field

crmForm.all.new_name.ForceSubmit = true;

?

//Set Name(Primary Attribute) to be "[ChildName]-[NumberOfDaysRequested] days";

crmForm.all.new_name = childName + " - " + intCount + " days";

一個字段可以設置的屬性還包括:

·???????? {Field}.DataValue

·???????? {Field}.Disabled

·???????? {Field}.RequiredLevel

·???????? {Field}.IsDirty

還有兩個公共方法可以調用:

·???????? {Field}.FireOnChange()

·???????? {Field}.SetFocus()

4.?????? Boolean的空值

CrmBoolean類型的值是可以包含null值的,所以很多時候我們直接將field.DataValue轉換為bool是錯誤的。在轉換之前需要先判斷是否為null.

var value = crmForm.all.my_bool.DataValue;

//Default to true if no value is set
if (value == null) {
??? value = true;
}

if (value == true)

?{
??? //do something
}
else

{
??? //do something else
}

5.?????? 判斷是運行在CRM 3.0還是CRM4.0

CRM4.0 提供了一個新的global的方法,我們可以利用它來判斷當前運行的環境:

if (typeof(GenerateAuthenticationHeader) == "undefined") {
??? alert("
CRM 3.0");
}
else {
??? alert("CRM 4.0");
}

6.?????? 控制tab的顯示與隱藏

CRM4.0中的tab頁默認都是按tab1Tab…tabNTab來命名的,隱藏或更改其中的某個tab跟隱藏和顯示普通的對象相同,你只需要提供tab的名字即可。(通過view page source來查看生成的源代碼便可以得到,你也可以通過IE Developer ToolsFireBug輕松得到)

if (crmForm.FormType = 1)

?{
??? var value = crmForm.all.new_
FileType.DataValue;

??? crmForm.all.tab1Tab.style.display = (value == "1") ? "none" : "";
???crmForm.all.tab1Tab.style.backgroundColor = 'red';
}

7.?????? 用正則表達式格式化

var originalPhoneNumber = "+49 (89) 12345678";
var formattedPhoneNumber = originalPhoneNumber.replace(/[^0-9,+]/g, "-");
formattedPhoneNumber = formattedPhoneNumber.replace(/-+/g, "-");
alert(formattedPhoneNumber);

8.?????? 隱藏表格的行

其實在CRM中,除了在crmForm中的對象我們可以用crmForm.all.對象名來簡單獲取外,其它的位于crmForm外的對象仍然可以像平時一樣用document.getElementById來獲取(其實crmForm內的也可以),并通過獲取的對象來設置屬性。如以下代碼演示了如何獲取一個行并將其隱藏:

//the field you want to hide

var field = crmForm.all.name;

?

//search the enclosing table row

while ((field.parentNode != null) && (field.tagName.toLowerCase() != "tr")) {

??? field = field.parentNode;

}

?

//if we found a row, disable it

if (field.tagName.toLowerCase() == "tr") {

??? field.style.display = "none";

}

9.?????? 如上的操作其實也可以用現在流行的jQuery來操作,并且更為簡單。在CRM中引用jQuery來操作客戶端對象,你會發現其優雅的方式讓你的開發工作更為舒服。

利用jQuery來做客戶端開發,你只需要做兩件事即可完成:

1). jQuery的類庫置入CRM并引用進頁面模型。將jQuery-1.2.6.js文件放于服務器的"ISV"Scripts目錄下,并在onLoad事件內加入將js文件加入文件引用的代碼:

var script = document.createElement('script');
script.language = 'javascript';
script.src = '/ISV/scripts/jquery-1.2.
6.js';
script.onreadystatechange = function()
{
?? if (event.srcElement.readyState == "complete" ||

????? event.srcElement.readyState == "loaded")
???????? onReady();
};
document.getElementsByTagName('head')[0].appendChild(script);

function onReady()
{

// custom code goes here

}

2). jQuery來執行客戶端操作

$("#name").parents("tr:first").hide();

$("*[RequiredLevel=2]").css("border","1px solid red");

?

轉載于:https://www.cnblogs.com/zlgcool/archive/2008/10/07/1305774.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的在CRM定制中常用的Javascript的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美一区二区激情 | 一区二区日韩精品 | 全黄一级裸片视频 | 久久国产中文字幕 | 日本一区二区精品视频 | 黄色小视频免费在线观看 | 二三区视频 | 久久久精品国产免费爽爽爽 | 免费观看a毛片 | 黑人玩弄人妻一区二区三区免费看 | 欧美资源站 | 波多野结衣中文在线 | 中文字幕一区二区在线观看 | 国产精品久久久久久久久免费软件 | 久久精品国产网红主播 | 国产美女无遮挡免费 | 日韩成年视频 | 精品欧美黑人一区二区三区 | 欧洲性猛交 | 医生强烈淫药h调教小说视频 | 荫蒂被男人添免费视频 | 日韩精品第一页 | 精品国产aⅴ一区二区三区东京热 | 97视频免费在线 | www.xxx日韩 | 国产午夜精品一区二区三区嫩草 | 久久av一区二区三区亚洲 | 99久久久久久 | av免费高清 | 四虎网站在线 | 91视频在线 | 国产精品毛片久久久久久久 | 少妇高潮一区二区三区99 | 不卡一区二区在线视频 | 香蕉爱爱视频 | 国内性爱视频 | 97超碰资源总站 | 亚洲一区日韩 | 一级免费黄色大片 | 福利小视频在线播放 | 91视频青青草 | 国产美女被遭强高潮免费网站 | 性欧美熟妇videofreesex | 美丽的姑娘在线观看免费 | 在线观看日韩av电影 | 国产精品99精品久久免费 | 精品91自产拍在线观看二区 | 九九色在线 | 综综综综合网 | 久久精品6 | 免费亚洲网站 | 91视频官网| 一区二区三区四区五区六区 | 99免费在线观看 | 中文字幕成人一区 | 亚洲天堂一区 | 日韩视频欧美视频 | 免费视频网站在线观看入口 | 亚洲精品一区二区三区在线 | 国产美女在线观看 | 日日摸日日 | 动漫美女被艹 | 天天射天天| 国产99久久| 黄色小说在线视频 | 国内精品国产三级国产aⅴ久 | 五月色婷婷综合 | 天天爽天天操 | 特级西西444www高清大视频 | 亚洲v日韩v综合v精品v | 日韩黄色网址 | 国产1区2区在线观看 | 日韩精品啪啪 | 国产一区二区三区视频在线播放 | 欧美精品免费在线观看 | 日韩在观看线 | av最新资源 | 国产高清久久 | 日韩精品一区二区三区中文在线 | 国产高清中文字幕 | 欧美日韩在线视频一区 | 国产精品普通话 | 亚洲一区二区三区免费看 | 欧美日韩一级黄色片 | 日本一区二区三区免费看 | 99热成人 | 久久性网 | 欧美日韩xxxx | 久久久久亚洲AV成人无码国产 | 成人看的毛片 | 性xxxx搡xxxxx搡欧美 | 国模无码大尺度一区二区三区 | 69xxxx日本| 激情五月婷婷综合 | 日韩91精品 | 91av小视频 | 韩国19主播内部福利vip | 99精品在线视频观看 | 伊人春色在线 |