问题似乎很简单,但它给我带来了麻烦。我有一个带有两个dataField的dataGrid:peerID,name。当新用户加入群组时,网格中的信息会动态更新(我正在创建聊天)。我需要关于用户在断开连接后从网格中删除的信息。
所以,在“NetGroup.Neighbor.Disconnect”:事件我想比较“event.info.peerID”值与网格中的所有peerID值并删除有关断开连接的用户的信息。
我正在尝试使用下一个构造:
for (var i:uint, len:uint = txtDataArray.length; i < len; i++)
{
if (txtDataArray.source[i] == event.info.peerID)
{
txtDataArray.removeItemAt(i);
break;
}
}
<s:DataGrid id="txtData" x="11" y="59" width="238" height="164" alternatingRowColors="[ #67676767, #555555]" borderVisible="true" chromeColor="#555555" color="#CCCCCC" contentBackgroundColor="#555555" dataProvider="{callerns}" fontWeight="bold" requestedRowCount="4" rollOverColor="#08700D" selectionColor="#08700D" symbolColor="#CCCCCC">
<s:columns>
<s:ArrayList id="txtDataArray">
<s:GridColumn dataField="name" headerText="USERS ONLINE"></s:GridColumn>
<s:GridColumn dataField="peerID" headerText="USER ID" visible="true"></s:GridColumn>
</s:ArrayList>
</s:columns>
</s:DataGrid>
但它根本不起作用!
我注意到构造txtDataArray.source [i](或txtDataArray.getItemAt(i))返回了[object GridColumn]的值。所以,我有两个问题: 1)如何获得精确细胞的价值? 2)用户断开连接后如何组织信息删除?
提前谢谢!
答案 0 :(得分:0)
为什么使用txtDataArray.source[i]
?
你可以这样写:
for (var i:int; i < callerns.length; i++)
{
if (callerns[i].peerID == event.info.peerID)
{
callerns.removeItemAt(i);
break;
}
}
或如果您愿意,请使用for each
顺便说一下,我喜欢你的datagrid风格。