Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Acumatica动态多选下拉列表_C#_Erp_Acumatica - Fatal编程技术网

C# Acumatica动态多选下拉列表

C# Acumatica动态多选下拉列表,c#,erp,acumatica,C#,Erp,Acumatica,我有一个屏幕条目来存储事务数据,我想使用dynamic withmultiselect combobox来选择状态,状态数据取自表,但当选择某些数据状态时,存储的数据量与所选的不匹配 我已经尝试了以下代码,但它对我不起作用 public class StatusMultiStringListAttribute : PXStringListAttribute { public StatusMultiStringListAttribute() : base() {

我有一个屏幕条目来存储事务数据,我想使用dynamic withmultiselect combobox来选择状态,状态数据取自,但当选择某些数据状态时,存储的数据量与所选的不匹配

我已经尝试了以下代码,但它对我不起作用

 public class StatusMultiStringListAttribute : PXStringListAttribute
{
    public StatusMultiStringListAttribute() : base()
    {
        PXResultset<StatusTable> rslt = PXSelect<StatusTable>.Select(new PXGraph());
        List<string> values = new List<string>();
        List<string> labels = new List<string>();
        foreach (PXResult<StatusTable> item in rslt)
        {
            BSMTStatus e = (StatusTable)item;
            values.Add(e.StatusID);
            labels.Add(e.Description);
        }

        this._AllowedValues = values.ToArray();
        this._AllowedLabels = labels.ToArray();
        MultiSelect = true;
    }
}
公共类状态MultistringListAttribute:PXStringListAttribute
{
公共状态MultistringListatAttribute():base()
{
PXResultset rslt=PXSelect.Select(新建PXGraph());
列表值=新列表();
列表标签=新列表();
foreach(rslt中的PXResult项)
{
BSMTStatus e=(状态表)项;
添加(例如StatusID);
标签。添加(如说明);
}
这._AllowedValues=values.ToArray();
这._AllowedLabels=labels.ToArray();
MultiSelect=true;
}
}
还有其他解决办法吗,对不起,我的英语不好,谢谢。

我注意到你在上的评论,看到你发布了一些附加代码。根据您的示例代码,我发现了两个问题:

首先,从StatusTable DAC加载的值包含未修剪的尾随空格。您尚未提供StatusTable DAC的声明,但可以从屏幕截图中安全地假设此字段的
IsFixed
属性设置为
true
。通过这些设置,系统将在值的末尾添加空白。为了节省目标字段中的空间,我建议在构造函数代码中添加Trim():

foreach (PXResult<StatusTable> item in rslt)
{
    BSMTStatus e = (StatusTable)item;
    values.Add(e.StatusID.Trim()); //Remove any white-space
    labels.Add(e.Description);
}

请提供目标字段(状态)的确切属性集,好吗?我怀疑这块地不够大,容纳不下所有的贵重物品。我还注意到字段中的值在末尾包含额外的空格。
[PXDBString(255)]
[PXDefault]
[PXUIField(DisplayName = "Status")]
[StatusStringList]
public virtual string Status