2

コードは ExtJS にあります。グリッド パネルから取得しているデータ。ユーザーが行をクリックすると、データを取得してポップアップを自動入力します。

for(index = 0; index < grid_obj.getStore().getCount(); index++){
if(sm.isSelected(index)){ 
selected_row = index;
record = grid_obj.getStore().getAt(index);
record_data = record.data.field;
s_record = record_data.toString().replace('(','').replace(')','').split(',');
}
}

ExtJS コードがあり、バックエンド コードは Python で書かれています。次の状況があります。

data = (1,2,4);

これは、変更できない Python コードによって返される形式です。を使用してその要素にアクセスできるように、配列に変換する必要がありますindexOf。次のようなさまざまなアプローチを試しました。

record = Array(data.toString().replace('(','').replace(')','').split(','));

私がそうalert(record.indexOf('2'))すると、-1 になります。

4

3 に答える 3

1

データはどのようにクライアントに送信されますか?Javascriptは常に文字列として取得し、タプルの文字列表現は次のようになります。次のようになります"(1,2,3,4)"。これらの数値を配列に入れるには、次のようにします。

tuple = "(1,2,3,4,5)"; // just getting some test data, you'll probably get this in an AJAX response from the server
data = tuple.substring(1,tuple.length - 1).split(",");

これで、文字列の配列ができました。各文字列には、タプル内のデータが含まれています。

これを整数の配列に変換したい場合は、次のようにすることができます。

for(index in dat)
{
    data[index] = Number(data[index])

}
于 2012-06-02T09:01:55.707 に答える
0

あなたはこれを必要とします:

record = data.toString().replace('(','').replace(')','').split(',');

配列自体を返すためArray(..)、余分なものを削除します。split(..)

于 2012-06-02T08:55:20.257 に答える