【问题标题】:How I can bind devexpress report table to list of strings?如何将 devexpress 报告表绑定到字符串列表?
【发布时间】:2016-12-17 19:42:27
【问题描述】:

我尝试使用表格创建报告并将其绑定到字符串列表(大约 10000 个项目)。

我尝试在运行时创建行,但速度很慢:

String[] ids = GetIds();
DetailTable.BeginInit();
foreach (String id in ids)
{
     XRTableRow newRow = new XRTableRow();
     XRTableCell newCell = new XRTableCell();
     newCell.Text = id;
     newRow.Cells.Add(newCell);
     DetailTable.Rows.Add(newRow);
}
DetailTable.EndInit(); 

我也尝试绑定单元格,但在报告中我只能看到第一行:

var ids = GetIds().Select(id => new {Id = id});
this.DataSource = ids;
IdCell.DataBindings.Add(new XRBinding("Text", DataSource, "Id"));

我怎样才能填满我的桌子?

【问题讨论】:

  • 你在使用上面的代码吗?它甚至不会编译。 ids 是字符串类型,然后你正在循环它,id 是字符串?不可能。

标签: c# devexpress report reporting devexpress-mvc


【解决方案1】:

我也想看看你的报告设计视图。 我这样做如下(在设计视图上):

  1. 将一个 xrTable 放入 DetailReport - 这将是表格标题,只是固定文本, 也许是一些格式(背景、字体等), 我假设您的表格只有一列。
  2. 插入另一个 DetailReport(通过右键单击其名称并选择 Insert Detail Report 插入第一个)
  3. 在第二个里面放另一个相同大小和列数的 xrTable (您将在那里放置数据)
  4. 点击第二个DetailReport的智能标签,添加数据源(一个模型,你的列表在哪里) 并将 DataMember 指向您的列表项。
  5. 我不知道它是否会将自己映射到列表中的字符串值。 可能不会,所以我会更改您的 List[[string]] 例如一个列表[[MyOneColumnClass]] 其中 MyOneColumnClass 只是一个只有一个公共字符串 Value {get; set;} 然后您将 DataMember 指向字段 [Value](只需在 xrTableCell 文本中键入括号中的单词。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    相关资源
    最近更新 更多