2

我确信这是可能的,我只是没有最模糊的方式或从哪里开始。

所以,我在 MS Dynamic CRM 中创建了一个选项集,它给了我一个国家列表,MyCountryOptionSet。迷人的。

但是,我有许多其他 .net、c# 应用程序,用户可以在其中输入自由文本。这不是那么可爱。

因此,我想将这些绑定起来,以便只能使用 MyCountryOptionSet 中存在的国家/地区。

因此,我想将 MyCountryOptionSet 中的国家绑定到我的 .net 应用程序中的下拉列表。

我该怎么做呢?

4

3 回答 3

5

查看RetrieveAttributeRequestIOrganizationService。这将允许您获得选项集中定义的国家/地区。AttributeMetadata通过将属性投射到PicklistAttributeMetadata.

与控件的绑定将是特定于 UI 技术的,因此请发布更多信息。

于 2012-06-07T14:12:22.713 回答
4

使用 crm api 获取选项值如下...

_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,
                serverConfig.Credentials, serverConfig.DeviceCredentials);
_serviceProxy.EnableProxyTypes();
_service = _serviceProxy;

RetrieveAttributeRequest retrieveAttributeRequest =
    new RetrieveAttributeRequest
    {                            
        EntityLogicalName = EntityLogicalName,
        LogicalName = optionSetLogicalName,
        RetrieveAsIfPublished = true,
    };

// Execute the request.
RetrieveAttributeResponse retrieveAttributeResponse =
    (RetrieveAttributeResponse)_service.Execute(
    retrieveAttributeRequest);

// Access the retrieved attribute.
PicklistAttributeMetadata retrievedPicklistAttributeMetadata =
    (PicklistAttributeMetadata)
    retrieveAttributeResponse.AttributeMetadata;

// Get the current options list for the retrieved attribute.
OptionMetadata[] optionList =
    retrievedPicklistAttributeMetadata.OptionSet.Options.ToArray();

//Dictionary<int,string> LocalizedLabelDic = new Dictionary<int,string>();

List<ListItem> OptionSetItems = new List<ListItem>();

foreach (OptionMetadata o in optionList)
{
    OptionSetItems.Add(new ListItem(o.Label.LocalizedLabels.FirstOrDefault(e => e.LanguageCode == 1033).Label.ToString(), o.Value.Value.ToString()));
}

然后将 listitem 通用集合绑定到你的 asp.net 下拉列表

于 2012-09-22T14:07:16.167 回答
0

您可以使用如下查询直接查询 CRM 数据库中的值:

select Value, AttributeName
from StringMap
where AttributeName = 'New_MySet' --schema name of the global option set
and ObjectTypeCode = 1 --changes based on entity type field is associated with

获得结果后,您可以将它们绑定到应用程序中的列表。

于 2012-06-07T14:11:54.120 回答