【问题标题】:DevExpress MVC GridView - How do i add X-number of columns (foreach) dynamically from collection (collection in collection)?DevExpress MVC GridView - 如何从集合(集合中的集合)动态添加 X 列(foreach)?
【发布时间】:2014-05-27 14:25:56
【问题描述】:

我有一个 DevExpress gridview 可以正常工作,但是......在绑定模型中,它也是“VisitTypes”的集合,我不知道如何处理......

它是“VisitTypeSummary”类型的列表(集合)。

我想要做的是为这个集合中的每个项目添加一个新列。集合看起来像这样:

  1. 访问类型ID
  2. 姓名
  3. 计数

所以结果应该是这样的(如果项目的数量是 3):

  • Col1:区域
  • Col2:名称
  • Col3:地址
  • Col4 : VisitTypeSummary[0].Name
  • Col5 : VisitTypeSummary[1].Name
  • Col6 : VisitTypeSummary[2].Name
  • Col7:上次访问时间

等等等等……

问题是我不知道如何实际.. 访问 PartialView 中的模型,我试图通过执行 foreach(Model.VisitTypeSummary 中的 var 项)来完成此操作,但它看起来和闻起来都是错误的..

这里是一些代码:

var grid = Html.DevExpress().GridView(settings => {
-- etc -->

settings.Columns.Add("AntButikkMedBesoeksKode");
settings.Columns.Add("BesoeksProsent");

foreach (var VisitTypeSummary in the-model-i-cannot-figure-out) )
    {
    // add new column to the gridview                                                      
    }

settings.Columns.Add("AntKundeBesoek");
settings.Columns.Add("SumBesoekForSelger");
settings.Columns.Add("SnittBesoekPrDagSelger");

// and bind it in the end..
@grid.Bind(Model).GetHtml()

所以.. 有人知道我该怎么做吗?谷歌搜索了一段时间,但没有成功。

【问题讨论】:

    标签: gridview foreach devexpress dynamic-columns devexpress-mvc


    【解决方案1】:

    听起来您在描述主从关系。模型中的每条记录都有一个 VisitTypeSummary 集合。

    DevExpress Demo here

    我建议将 VisitTypeSummary 集合放在详细视图中,而主模型显示为主数据集。然后,详细视图将有一个列列出 VisitTypeSummary 的名称,如果类扩展,您可以稍后添加更多列。

    这将减少主网格视图中的总列数,从而简化用户界面并提高可用性。

    编辑: 根据我的评论,如果您真的需要网格中的这些列,您可以使用 for 循环来添加它们:

    for (int i = 0; i < VisitTypeSummary.Count; i++)
    {
        settings.Columns.Add(string.Format("VisitTypeSummary[{0}].Name"), i);
    }
    

    【讨论】:

    • 这是有道理的,除了我有点需要它保持在同一个网格中并且不将其作为主细节包括在内,其中的细节在某种程度上是......不直接连接到网格就像我可以直接插入列一样。因此,我仍然需要弄清楚如何访问部分视图中的数据,以便我可以手动将它们添加到列中。 :)
    • 好的,在这种情况下,我想使用 for 循环是您的最佳选择。添加列时,您可以使用标准点表示法:settings.Columns.Add(string.format("VisitTypeSummary[{0}].Name"), i);其中 i 是你在 for 循环中的计数器 (for (int i = 0; i
    猜你喜欢
    • 1970-01-01
    • 2021-11-27
    • 2019-09-03
    • 2019-12-14
    • 1970-01-01
    • 2021-05-09
    • 2011-03-03
    • 1970-01-01
    • 2016-05-02
    相关资源
    最近更新 更多