如何从xrTableRow xtraReport获取对xrTableCell的控制

问题描述

我的xrTable中有数百行。该表包含很少的列,而我唯一停留在这里的是如何基于xrTableRow_BeforePrint

来控制xrTableCell(列索引3)
private void xrTableRow101_BeforePrint(object sender,System.Drawing.Printing.PrintEventArgs e)
{
    XRTableRow tr = new XRTableRow();
    tr = (XRTableRow)sender;
    ////belw this should be if() for column 3 in that particular row
    if (tr.Cell.[  -- get control column index 3 here ---].Text == "")
    {
        tr.Visible = false;
    }
}

很显然,我可以为每一行执行多行代码,但是我想在这里所做的只是简化代码,使其成为一种功能。这样我就可以向我想要的所有行声明单个类函数。

解决方法

参考这些:
How to loop through all rows in xrtable in XtraReport
How to loop through all rows in an XtraReport

要获取XRTable行集合,请改用XRTable.Rows属性。请注意,FindControl方法返回一个XRControl对象,因此有必要将其强制转换为适当的类型。例如:

XRTable table = report.FindControl("xrTable1",true) as XRTable;  

foreach (XRTableRow row in table.Rows)  
    foreach (XRTableCell cell in row.Cells)  
        ....  

注意:您只能迭代通过设计器添加的行。如果您的报表与数据库绑定,则建议您处理所需XRTableCell的BeforePrint事件,并在那里获取单元格文本(使用XRTableCell.Text属性或XtraReport.GetCurrentColumnValue method)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...