在FlexPrintJob中将CheckBox或其他Control添加到PrintDataGrid

时间:2012-09-19 23:08:16

标签: actionscript-3 printing air flex4 flashbuilder4

所以我们做得很好。

从XMLListCollection获取字段,以使用FlexPrintJob在Flash Builder 4 AIR应用程序中打印,并使用自己的PrintDataGrid自定义PrintView对象。

<mx:PrintDataGrid id="myDataGrid" width="100%">
    <mx:columns>
        <!-- "word" is the name of the XML field that prints-->
        <mx:DataGridColumn dataField="word" headerText="My Word List" />
    </mx:columns>
</mx:PrintDataGrid>

现在,我希望能够为用户提供在每个单词之前向打印输出添加复选框的选项。我应该创建另一个自定义PrintView吗?如何将复选框控件(仅限打印输出,在app中不需要它们)添加到列中?

1 个答案:

答案 0 :(得分:0)

自己想出一个解决方案。 由于这些复选框只需要在打印页面上,因此它们不需要是实际的Checkbox控件,因此我在labelFunction中使用了Unicode编号作为空白框(在动作脚本语法中为\ u25a2)。

<mx:PrintDataGrid id="myDataGrid" width="100%">
    <mx:columns>
        <mx:DataGridColumn dataField="word" headerText="My Word List" labelFunction="addCheckBoxes" />
    </mx:columns>
</mx:PrintDataGrid>
<fx:Script>
    <![CDATA[
        function addCheckBoxes(theItem:Object, theColumn:DataGridColumn):String{
            var itemText:String = theItem[theColumn.dataField];
            var retString:String = "\u25a2 \u25a2 \u25a2  " + itemText;
            return retString;
        }
    ]]>
</fx:Script>

此代码放在我最初为列表创建的PrintView的副本中。