jqgridツリーグリッドセルがあり、リンクやその他のhtml形式のコンテンツをセル内に配置したいと考えています。
これはjqgridtreegridで可能ですか?ドキュメントに記載されているものが何も表示されません
単純なテーブル データを持つ jqGrid からわかることのほとんどは、ツリー グリッドでも有効です。したがって、カスタム フォーマッタまたはカスタム属性フォーマッタ ( cellattr
) を使用して HTML をセルに配置できます。必要に応じて、HTML フラグメントを JSON または XML 入力に配置できます。
小さなデモを見てください:
ツリー グリッドはデータ ページングをサポートしていないことを理解することだけが重要であるため、rowNum
パラメーターを 10000 などの十分に大きな値に設定する必要があります。
ツリー グリッドの内容を調べることをお勧めします。非表示の列'level'
、'parent'
、'isLeaf'
、'expanded'
、'loaded'
および'icon'
が最後のグリッド列として表示されます。さらに、すべてのツリー ノード (展開されているものと展開されていないもの) が既にグリッドに追加されていることがわかります。まだ展開されていないノードは非表示になっています。
デモで使用されるツリー グリッドのコードは次のとおりです。
$("#tree").jqGrid({
url: 'AdjacencyTreeWithHTML.json',
datatype:'json',
mtype:'GET',
colNames: ["ID", '<span style="color:Tomato">Description</span>', "Total"],
colModel: [
{name:'id', index:'id', width: 1, hidden: true, key: true},
{name:'desc', width:180, sortable:false},
{name:'num', width:80, sortable:false, align:'center',
cellattr: function (rowId, tv, rawObject, cm, rdata) {
return Number(tv) <=100 ? 'style="background-color:LightGreen"' :
'style="background-color:Tomato"';
}}
],
treeGridModel:'adjacency',
height:'auto',
rowNum: 10000,
treeGrid: true,
ExpandColumn:'desc',
caption:"TreeGrid Test"
});
ここで'AdjacencyTreeWithHTML.json'
:
{
"total": "1",
"page": "1",
"records": "2",
"rows": [
{"id": "1", "cell": ["1", "Super <b>Item</b>", "300", "0", "", "false", "true", "true"]},
{"id": "2", "cell": ["2", "<a href='http://www.google.com'>Google</a>", "100", "1", "1", "false", "false", "true"]},
{"id": "3", "cell": ["3", "Sub Item 1", "50", "2", "2", "true", "true", "true"]},
{"id": "4", "cell": ["4", "Sub Item 2", "25", "2", "2", "false", "false", "true"]},
{"id": "5", "cell": ["5", "Sub-sub Item 1", "25", "3", "4", "true", "true", "true"]},
{"id": "6", "cell": ["6", "Sub Item 3", "25", "2", "2", "true", "true", "true"]},
{"id": "7", "cell": ["7", "<span style='background-color:LightGreen; color:Tomato'>Item 2</span>", "200", "1", "1", "false", "true", "true"]},
{"id": "8", "cell": ["8", "Sub Item 1", "100", "2", "7", "false", "false", "true"]},
{"id": "9", "cell": ["9", "Sub-sub Item 1", "50", "3", "8", "true", "true", "true"]},
{"id": "10", "cell": ["10", "Sub-sub Item 2", "50", "3", "8", "true", "true", "true"]},
{"id": "11", "cell": ["11", "Sub Item 2", "100", "2", "7", "true", "true", "true"]}
]
}
それが生成するHTMLソースを見てください。それが単なる<table>
オブジェクトである場合は、私が思うに、そこに好きなHTMLを入れることができます。