数据库操作
update tablebase set field = ‘[-1,对应选项值多个逗号隔开,-1]’
C#后台操作
/// <summary>
/// 获取多选框所有选项
/// </summary>
/// <param name="entityName"></param>
/// <param name="fieldName"></param>
/// <param name="service"></param>
/// <returns></returns>
public Dictionary<int, string> GetMoreOptionSet(string entityName, string fieldName, IOrganizationService service)
{
var dic = new Dictionary<int, string>();
RetrieveEntityRequest retrieveDetails = new RetrieveEntityRequest();
retrieveDetails.EntityFilters = EntityFilters.All;
retrieveDetails.LogicalName = entityName;
RetrieveEntityResponse retrieveEntityResponseObj = (RetrieveEntityResponse)service.Execute(retrieveDetails);
EntityMetadata metadata = retrieveEntityResponseObj.EntityMetadata;
var picklistMetadata = metadata.Attributes.FirstOrDefault(attribute => string.Equals(attribute.LogicalName, fieldName, StringComparison.OrdinalIgnoreCase)) as MultiSelectPicklistAttributeMetadata;
OptionSetMetadata options = picklistMetadata.OptionSet;
foreach (var o in options.Options)
{
if (o.Value != null)
{
dic.Add(o.Value.Value, o.Label.UserLocalizedLabel.Label);
}
}
return dic;
}
/// <summary>
/// 获取下拉框的所有选项
/// </summary>
/// <param name="entityName"></param>
/// <param name="fieldName"></param>
/// <param name="service"></param>
/// <returns></returns>
public Dictionary<int ,string> GetOptionSet(string entityName, string fieldName, IOrganizationService service)
{
var dic = new Dictionary<int, string>();
RetrieveEntityRequest retrieveDetails = new RetrieveEntityRequest();
retrieveDetails.EntityFilters = EntityFilters.All;
retrieveDetails.LogicalName = entityName;
RetrieveEntityResponse retrieveEntityResponseObj = (RetrieveEntityResponse)service.Execute(retrieveDetails);
EntityMetadata metadata = retrieveEntityResponseObj.EntityMetadata;
PicklistAttributeMetadata picklistMetadata = metadata.Attributes.FirstOrDefault(attribute => String.Equals(attribute.LogicalName, fieldName, StringComparison.OrdinalIgnoreCase)) as PicklistAttributeMetadata;
OptionSetMetadata options = picklistMetadata.OptionSet;
foreach(var o in options.Options)
{
if (o.Value != null)
{
dic.Add(o.Value.Value, o.Label.UserLocalizedLabel.Label);
}
}
return dic;
}
多选获取值 字段集合
entity.GetAttributeValue(“多选字段”);
JS
Xrm.Page.getAttribute(“attributename”).getValue();
获取到的是个 string 字符串 like “1,3,5”
赋值:
Xrm.Page.getAttribute(“attributename”).setValue([1,2,3]);
Xrm.Page.getAttribute(“attributename”).setValue(null);
赋值需要赋值一个int数组或者null
扩展: JS string 转 int数组
let dataIntArr = [];
"1,2,3".split(",").forEach(item => {
dataIntArr.push(+item);// PS JS中字符串数字前面加+号,会变成number类型 JS基本数据类型:Undefined、Null、Boolean、Number和String.
});