如何使用CRM JavaScript SDK从字段中检索名称而不是值? 可以使用SDK检索该值:
SDK.REST.retrieveRecord(...);
account.completePopulateAccountFields = function (account) {
var type = account["optionsetname"].Value;
if (type != null)
//perform action
此通话中仅返回该值 在OrganizationData.svc中是否有可以使用检索到的值查询的选项集?
答案 0 :(得分:2)
您需要使用metadataservice来检索标签名称。检查代码:
C#:
RetrieveAttributeRequest request = new RetrieveAttributeRequest {
EntityLogicalName = entityName,
LogicalName = attributeName,
RetrieveAsIfPublished = true
};
RetrieveAttributeResponse response = (RetrieveAttributeResponse)service.Execute(request);
PicklistAttributeMetadata metadata = (PicklistAttributeMetadata)response.AttributeMetadata;
OptionMetadata[] optionList = metadata.OptionSet.Options.ToArray();
foreach (OptionMetadata option in optionList) {
//option.Value - Value of option
//option.Label.UserLocalizedLabel.Label - Label name of that value
}
如果你想知道一个你只知道价值的标签文字而你没有表格,请在Javascript中使用它。
如果您处于要获取选项集文本的格式,则可以这样做:
Xrm.Page.getAttribute("optionsetfieldname").getText();
答案 1 :(得分:1)
我将相同的命名选项集添加到Contact并将其设置为只读,并使用我从父帐户获得的值填充它。
要求是在联系人上显示父帐户类型
我仍然不知道如何使用JavaScript获取选项设置值的名称。
答案 2 :(得分:0)
最近在CRM中发生了一些变化(?),因此调用Xrm.Page.getAttribute(" optionsetfieldname")。getText()会直接给你一个错误。 使用两步法:
var sOptionsetAttribute = Xrm.Page.getAttribute("optionsetfieldname");
var sOptionsetValueName = sOptionsetAttribute.getText();