GridView未绑定列错误

时间:2015-02-19 08:04:16

标签: c# asp.net gridview devexpress


我在DevExpress中使用ASP.NET MVC,我在视图中插入了一个gridview(使用它自动生成的部分和东西),我想在其中添加一个未绑定的列。

@{
    var grid = Html.DevExpress().GridView(settings =>
    {
        //configuration code and other columns
        settings.Columns.Add(c =>
        {
            c.FieldName = "ClientFinal";
            c.Caption = "Client Final";
            c.UnboundType = DevExpress.Data.UnboundColumnType.String;
            c.UnboundExpression = "[Prenom] + ' ' + [Nom]";
        });
//configuration code
    });
}
@grid.Bind(Model).GetHtml()

ClientFinal实体:

public class ClientFinal : XPObject
    {
        public ClientFinal(Session session) : base(session) { }
        public override void AfterConstruction() { base.AfterConstruction(); }

        private string nom;
        public string Nom
        {
            get { return nom; }
            set { SetPropertyValue<string>("Nom", ref nom, value); }
        }

        private string prenom;
        public string Prenom
        {
            get { return prenom; }
            set { SetPropertyValue<string>("Prenom", ref prenom, value); }
        }
//other attributes
    }

结果:
enter image description here

我甚至尝试过:c.UnboundExpression = "[ClientFinal.Prenom] + ' ' + [ClientFinal.Nom]";但它没有效果。

请帮忙。

1 个答案:

答案 0 :(得分:0)


最后我解决了它,问题是在devexpress文档中没有很好地解释Unbound Column功能 第一:

c.FieldName = "ClientFinalUnbound";

属性FieldName必须是唯一的,它只是列的名称,而不是相关实体中现有字段的映射(网格中显示的那个)。

第二:

c.UnboundExpression = "[ClientFinal.Prenom] + ' ' + [ClientFinal.Nom]";

在未绑定的表达式中,字段必须是现有的(在实体定义中列为属性,在实体定义中列为属性的子元素),所以这里我调用ClientFinal属性的Prenom(或Nom)属性在RendezVous实体中(网格中显示的实体)。

由于