2014-03-26 44 views
0

我有一些任務:我有一個列表,我從視圖從控制器傳遞,但這種模式本身是一個集合。我應該如何在構建方法中綁定一列?MVCxGridView綁定列表<>與集合到列名稱

C#:

public static void GridColumns(List<ParameterCollection> model, MVCxGridViewColumnCollection columns) 

    { 
     columns.Add(??????????); 

    } 

檢視:

@model List<TFlex.DOCs.Model.Parameters.ParameterCollection> 

@using TFlexDOCsWeb; 


    @Html.DevExpress().GridView(settings => 

{ 
     settings.Name = "GridView"; 
     //settings.ClientSideEvents.Init = "OnInit"; 
     settings.KeyFieldName = "SystemFields.Id"; 
     settings.SettingsBehavior.ConfirmDelete = true; 
     settings.CallbackRouteValues = new { Controller = "Catalogues", Action = "_GridViewPartial" };  
     settings.CommandColumn.Visible = true; 
     settings.CommandColumn.Caption = "*"; 
     settings.CommandColumn.Width = System.Web.UI.WebControls.Unit.Percentage(5); 
     settings.SettingsPager.Visible = true; 
     settings.SettingsBehavior.AllowSelectByRowClick = false; 
     TFlexDOCsWeb.DevEx.GridViewBuilding.<bold>GridColumns</bold>(Model, settings.Columns); 


     var headerFilterMode = true ? HeaderFilterMode.CheckedList : HeaderFilterMode.List; 
     foreach (GridViewDataColumn column in settings.Columns) 
      column.Settings.HeaderFilterMode = headerFilterMode; 
     settings.Settings.ShowFilterRow = true; 
     settings.Settings.ShowFilterRowMenu = true; 

    }).Bind(Model).GetHtml()<bold> 
</bold> 

模型ParameterCollection中由選自,其中parameter.Value =是值,並且該參數的parameter.ParameterInfo =標題(字段的名稱)。我不知道如何綁定每個ParameterCollection參數的列名稱。參數信息名稱

回答

0

只需將它綁定到列表中設置GridViewSettings的列設置中的對象上的屬性名稱即可。 請參閱下面的簡化示例。

模型

namespace Some.Name.Space 
{ 
    public class RecipientListViewModel : List<RecipientViewModel> // HOwever you define your list 
    { 
    } 

    public class RecipientViewModel 
    { 
     public string Id {get; set;} 
     public string FullName { get; set; } 
    } 
} 

VIEW

@Html.DevExpress().GridView(settings => 
    { 
     //General settings 
     settings.Name = "GridViewName"; 
     settings.KeyFieldName = "Id"; // actual parameter name of keyfield on your object that is in your list 
     //other settings etc 



     settings.Columns.Add(column => 
     { 
      column.Name = "FullName"; // actual parameter name on your object that is in your list that you want on the column 
      column.FieldName = "FullName"; // actual parameter name on your object that is in your list that you want on the column 
      column.Caption = LanguageHelper.GetText("UserConfig_Recipients_RecipientNameHeader"); 
      //column.Width = System.Web.UI.WebControls.Unit.Pixel(200); 
     }); 
     //other columns etc 
}).Bind(YourModel).GetHtml() 

控制器

public ActionResult Overview() 
{ 
    RecipientListViewModel model = PopulateInformationView(); // Populates the list with data 
    return View("YOURVIEWNAME", model); 
}