我有一个数据网格(6 列),它显示来自数据库的字符串。我正在尝试使用标签函数来转义字符串中的 html 特殊字符(如 &apos、& 等)。
我在网上找到了这个:
protected function makeSpecialChars(item:Object,dgName:DataGridColumn):String {
var s:String = agentName.dataField;
var v:String = item.s;
return new XMLDocument(v).firstChild.nodeValue;
}
但是,当我这样做时,出现错误:无法访问空对象引用的属性或方法。
当我像这样更改上面的代码时,这很好用:
protected function makeSpecialChars(item:Object,agentName:DataGridColumn):String {
return new XMLDocument(item.computer_name).firstChild.nodeValue;
}
其中 computer_name 是此数据网格列的数据字段。
发布数据网格代码:
<components:DoubleClickDataGrid xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:components="components.*"
width="100%" height="100%"
editable="true"
focusColor="#CEDA9B"
rollOverColor="#CEDA9B"
selectionColor="#84A207"
dataProvider="{invList}"
creationComplete="doubleclickdatagrid1_creationCompleteHandler(event)"
itemEditEnd="handleInventoryEdit(event)">
<components:columns>
<mx:DataGridColumn width="120" dataField="computer_name" headerText="Computer Name" textAlign="center" labelFunction="makeSpecialChars"/>
<mx:DataGridColumn dataField="path" headerText="Path" textAlign="center" labelFunction="makeSpecialChars"/>
<mx:DataGridColumn width="110" dataField="computer_type" textAlign="center" headerText="Computer Type" />
<mx:DataGridColumn width="180" dataField="username" headerText="Username" textAlign="center" />
<mx:DataGridColumn width="90" dataField="ip_address" headerText="IP Address" textAlign="center" />
<mx:DataGridColumn width="130" dataField="mac_address" headerText="MAC Address" textAlign="center" />
<mx:DataGridColumn width="180" dataField="computer_model" headerText="Computer Model" textAlign="center" />
<mx:DataGridColumn width="70" editable="false" headerText="Actions" textAlign="center" itemRenderer="renderers.ActionRenderer" />
</components:columns>
到目前为止,这一切都很好(仅将 labelfunction 应用于 2 列).. 但我想将 label 函数应用于所有列...