如何使用JavaScript检索选项集的选定选项的名称

时间:2013-02-27 09:43:34

标签: dynamics-crm-2011

如何使用CRM JavaScript SDK从字段中检索名称而不是值? 可以使用SDK检索该值:

SDK.REST.retrieveRecord(...);
    account.completePopulateAccountFields = function (account) {
    var type = account["optionsetname"].Value;
    if (type != null)
        //perform action

此通话中仅返回该值 在OrganizationData.svc中是否有可以使用检索到的值查询的选项集?

3 个答案:

答案 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();