【问题标题】:How to combine more than one field in a column in DevExpress MVC?如何在 DevExpress MVC 的一列中组合多个字段?
【发布时间】:2013-11-13 20:22:56
【问题描述】:

我试图在一列中组合多个字段。就像一个人的两个名字(名字和姓氏)。是否可以在不更改 DB query 的情况下在 DevExpress MVC GridView 上进行操作?

这是我在部分视图中的代码 -

    settings.Columns.Add("CompanyName");
    // I need to combine NurseFirstName and NurseLastName into one column and name as NurseName 
    settings.Columns.Add("NurseFirstName"); 
    settings.Columns.Add("NurseLastName");

TIA。

【问题讨论】:

    标签: c# asp.net-mvc devexpress partial-views


    【解决方案1】:

    您需要使用 DataItemTemplate 将值组合到网格上的一个单元格中。比如:

    settings.Columns.Add(c =>
    {
        c.Caption = "Nurse Name";
        c.SetDataItemTemplateContent(t =>
        {
            Html.DevExpress().Label(
                l => {
                    l.Text = String.Format("{0} {1}", DataBinder.Eval(t.DataItem, "NurseFirstName"), DataBinder.Eval(t.DataItem, "NurseLastName"));
                }).Render();
        });
    });
    

    【讨论】:

      【解决方案2】:

      这是一个更强大的解决方案,不会与模板混淆:

          // Add column
          settings.Columns.Add(column =>
          {
              column.FieldName = "FullName";
              column.Caption = "Full Name";
              column.UnboundType = DevExpress.Data.UnboundColumnType.String;
          });
      
          // Add the combined values to the column
          settings.CustomUnboundColumnData = (sender, e) =>
          {
              if (e.Column.FieldName == "FullName")
              {
                  string fName = (string)e.GetListSourceFieldValue("FirstName");
                  string lName = (string)e.GetListSourceFieldValue("LastName");
                  e.Value = string.Format("{0} {1}", fName, lName);
              }
          };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多