FlexGrid
非連結のツリーグリッド
機能
サンプル
説明
非連結モードで作業したい場合は、コードで行と列を追加してツリーを構築することもできます。
ソース
UnboundTreeGridController.cs
using Microsoft.AspNetCore.Mvc;
namespace MvcExplorer.Controllers
{
public partial class FlexGridController : Controller
{
public ActionResult UnboundTreeGrid()
{
return View();
}
}
}
UnboundTreeGrid.cshtml
@model IEnumerable<ITreeItem>
@{
var list = Folder.Create(Startup.Environment.ContentRootPath).Children;
}
@section Styles{
<style>
.custom-flex-grid {
height: 400px;
background-color: white;
box-shadow: 4px 4px 10px 0px rgba(50, 50, 50, 0.75);
margin-bottom: 12px;
}
.custom-flex-grid .wj-cell {
background-color: #fff;
border: none;
font-size: 10pt;
}
.custom-flex-grid .wj-state-selected {
background: #000;
color: #fff;
}
.custom-flex-grid .wj-state-multi-selected {
background: #222;
color: #fff;
}
</style>
}
@section Scripts{
<script>
c1.documentReady(function () {
let grid = wijmo.Control.getControl("#ubgrid");
grid.rows.defaultSize = 25;
// add columns
grid.columns.push(new wijmo.grid.Column({ header: 'Header', width: '2*' }));
grid.columns.push(new wijmo.grid.Column({ header: 'Size' }));
let data = @Html.Raw(Json.Serialize(list));
// add rows
for (let r = 0; r < data.length; r++) {
// add header
var header = data[r];
var row = new wijmo.grid.GroupRow();
row.dataItem = header;
row.isReadOnly = false;
row.level = 0;
grid.rows.push(row);
grid.setCellData(row.index, 0, header.header);
if (header.children) {
addChild(grid, header, 1);
}
}
});
function addChild(grid, parent, level){
for (var c = 0; c < parent.children.length; c++) {
// add children
var child = parent.children[c];
row = new wijmo.grid.GroupRow();
row.dataItem = child;
row.isReadOnly = false;
row.level = level;
grid.rows.push(row);
grid.setCellData(row.index, 0, child.header);
grid.setCellData(row.index, 1, child.size);
if (child.children) {
addChild(grid, child, level+1);
}
}
}
</script>
}
<label>@Html.Raw(FlexGridRes.TreeGrid_Text0)</label>
<c1-flex-grid id="ubgrid" class="custom-flex-grid" width="500px"
auto-generate-columns="false" headers-visibility="Column" selection-mode="Row">
</c1-flex-grid>
@section Description {
@Html.Raw(FlexGridRes.TreeGrid_Unbound_Description)
}
マニュアル