0

質問は単純なようですが、それは私にとって問題を引き起こします。私は2つのdataFieldsを持つ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))が値の内側に[オブジェクトGridColumn]を返したことに気づきました。だから、私は2つの質問があります:1)正確なセルの値を取得する方法は?2)ユーザーの切断後に情報の削除を整理するにはどうすればよいですか?

前もって感謝します!

4

1 に答える 1

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に応じて使用します。
ところで、私はあなたのデータグリッドのスタイルが好きです。

于 2012-02-16T08:45:21.663 に答える