1

私は JSON アーキテクチャ、私のコード ビハインド (ASP.Net 3.5)、Web メソッドから初めて、次のようにデータ テーブルから配列を返します。

ID | 番号
____________

1 | 200  
1 | 300  
2 | 400  
2 | 500  
3 | 600  

このテーブルを配列で JSON オブジェクトに返しています。
私がやりたいことは、JQueryを使用して次のようにデータを構造化することです:

<div id="1">ID = 1</div>
    <div id="11">200</div>
    <div id="12">300</div>
</div>
<div id="2">ID = 2</div>
    <div id="21">400</div>
    <div id="22">500</div>
</div>
<div id="3">ID = 3</div>
    <div id="31">600</div>
</div>
4

2 に答える 2

1

レンダリング自体については、 jsRenderなどの JavaScript テンプレート ライブラリをお勧めします。JSON 形式については、サーバー側でデータをグループ化し、各プロパティに配列を含めることをお勧めします。したがって、JSON は次のようになります。

var data = {
    "1": ["200", "300"],
    "2": ["400", "500"],
    "3": ["600"]
}
于 2012-10-02T12:20:55.517 に答える
0

オブジェクトを使用して値をグループ化して、手動で行う必要があります。JSON オブジェクトがこれに逆シリアル化されるとします。

var myTable = [{ID: 1, Number:200}, {ID: 1, Number:300}, {ID: 2, Number:400}, {ID: 2, Number:500}, {ID: 3, Number:600}]

次に、このコードは値をグループ化します。

var myObject = {};
$.each(myTable, function() {
    if (!myObject[this.ID]) myObject[this.ID] = [];
    myObject[this.ID].push(this.Number);
}

次に、html コード構造を構築する必要があります...次のようなもの:

var myHtml = $("");
$.each(myObject, function(ID, Numbers) {
    if (Numbers) {
        var divId = $("<div></div>").attr("id", ID);
        $.each(Numbers, function(index, number) {
            divId.append($("<div></div>").attr("id", ID.toString() + (index+1).toString()).html(number));
        }
        divId.appendTo(myHtml);
    }
}

質問の html は有効ではないことに注意してください。</div>終了タグが多すぎるため、必要に応じてコードを調整します。

于 2012-10-02T12:30:58.770 に答える