这是我第一次在这里提问,因为我的问题在 adobe flex 论坛中无法得到解答。所以至少最后我能在这里管理它。
好吧,我猜现在每个人都在使用 Flex 4.5+,所以我问了这个问题,因为我还没有发现两者都可以工作Spark datagrid 和 mx printdatagrid 组件一起使用.
我想要实现的是打印 Spark 数据网格内的所有数据。因此,当我进行研究时,我们使用 PrintJob 或 FlexPrintJob 类。它工作正常,但是当我需要打印多页时,因为我的 Spark 数据网格上的数据很长,我无法以某种方式找到如何做到这一点的方法。打印输出仅达到我的火花数据网格的高度。因此,在我的研究中,他们以某种方式设法使用 mx:PrintDataGrid 组件。但遗憾的是,他们也使用 mx:DataGrid 做到了这一点。现在我的问题来了——如何将 mx:PrintDataGrid 与 s:DataGrid 一起使用.
var printJob:PrintJob = new PrintJob();
if (printJob.start())
{
var printGrid:PrintDataGrid = new PrintDataGrid();
printGrid.width = printJob.pageWidth;
printGrid.height = printJob.pageHeight;
printGrid.columns = mySparkDataGrid.columns; // this line throws an exception
printGrid.dataProvider = mySparkDataGrid.dataProvider;
printGrid.visible = false;
FlexGlobals.topLevelApplication.addElement(printGrid);
while (printGrid.validNextPage)
{
printGrid.nextPage();
printJob.addPage(printGrid);
}
printJob.send();
parentApplication.removeElement(printGrid);
}
所以请问这里有人可以帮我吗?如果无法将 Spark 数据网格列转换为 mx 数据网格列,是否有一种方法可以使用多个页面打印 Spark 数据网格上的所有数据?
预先非常感谢.
-Ted
尝试这样的事情(这对我有用)
for (var i:int = 0; i < mySparkDataGrid.columns.length - 1; i++) {
var tmpColumn:DataGridColumn = new DataGridColumn();
tmpColumn.headerText = (mySparkDataGrid.columns.getItemAt(i) as GridColumn).headerText;
tmpColumns.push(tmpColumn);
}
printGrid.columns = tmpColumns;
现在我必须找到方法,如何使用 ItemRender。我的数据提供程序有更大的对象,我必须解析它以在网格中显示正确的数据。我必须为打印做同样的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)