Features
カスタムセル
カスタムセル
機能
説明
このビューは、MultiRowコントロールのカスタムセル機能を示します。
このサンプルでは、TemplateIdプロパティを使用して「Trends」列のテンプレートのIDを指定しています。
また、このサンプルでは、ItemFormatterプロパティを使用して「Rank」列の表示をカスタマイズしています。ItemFormatterイベントハンドラで、MultiRowのgetBindingColumn関数を使用して連結列を取得します。
using Microsoft.AspNetCore.Mvc; using MultiRowExplorer.Models; using C1.Web.Mvc; using C1.Web.Mvc.Serialization; namespace MultiRowExplorer.Controllers { public partial class MultiRowController : Controller { public ActionResult CustomCells() { return View(); } public ActionResult CustomCells_Bind([C1JsonRequest] CollectionViewRequest<Sale> requestData) { return this.C1Json(CollectionViewHelper.Read(requestData, Sale.GetData(500))); } } }
@model IEnumerable<Sale> @section Scripts{ <script type="text/javascript"> function rankFormatter(panel, r, c, cell) { // gets the binding column var bcol = panel.grid.getBindingColumn(panel, r, c); if (bcol.binding === "Rank") { cell.style.textAlign = ""; if (panel.cellType === wijmo.grid.CellType.Cell) { cell.innerHTML = buildRank(panel.getCellData(r, c)); } } } function buildRank(rank) { var markup = "", j, starType; for (j = 0; j < 5; j++) { starType = j < rank ? "star star-highlighted" : "star star-dimmed"; markup += "<span class='" + starType + "'>\u2605</span>"; } return markup; } </script> } @section Styles{ <style> .star-highlighted { color: orange; } .star-dimmed { color: lightgray; } .trends { padding: 0px; vertical-align: middle; margin-top: 2px; } </style> } <c1-multi-row id="customCellMultiRow" is-read-only="true" class="multirow" item-formatter="rankFormatter"> <c1-items-source read-action-url="@Url.Action("CustomCells_Bind")"></c1-items-source> <c1-multi-row-cell-group> <c1-multi-row-cell binding="ID" header="ID" width="100"></c1-multi-row-cell> <c1-multi-row-cell binding="Active" header="Active"></c1-multi-row-cell> </c1-multi-row-cell-group> <c1-multi-row-cell-group colspan="2"> <c1-multi-row-cell binding="Country" header="Country" colspan="2"></c1-multi-row-cell> <c1-multi-row-cell binding="Product" header="Product" width="100"></c1-multi-row-cell> <c1-multi-row-cell binding="Color" header="Color" width="100"></c1-multi-row-cell> </c1-multi-row-cell-group> <c1-multi-row-cell-group colspan="2"> <c1-multi-row-cell binding="Amount" header="Amount" width="100"></c1-multi-row-cell> <c1-multi-row-cell binding="Amount2" header="Amount2" width="100"></c1-multi-row-cell> <c1-multi-row-cell binding="Discount" header="Discount" colspan="2"></c1-multi-row-cell> </c1-multi-row-cell-group> <c1-multi-row-cell-group> <c1-multi-row-cell binding="Trends" header="Trends" allow-sorting="false"> <c1-flex-grid-cell-template> <c1-flex-chart width="100px" height="40px" class="trends" binding-x="Month" template-bindings="@(new {ItemsSource="Trends"})"> <c1-flex-chart-axis c1-property="AxisX" position="None"></c1-flex-chart-axis> <c1-flex-chart-axis c1-property="AxisY" position="None"></c1-flex-chart-axis> <c1-flex-chart-series binding="Data"></c1-flex-chart-series> </c1-flex-chart> </c1-flex-grid-cell-template> </c1-multi-row-cell> </c1-multi-row-cell-group> <c1-multi-row-cell-group> <c1-multi-row-cell binding="Rank" header="Rank"></c1-multi-row-cell> </c1-multi-row-cell-group> </c1-multi-row> @section Description{ <p>@Html.Raw(MultiRowRes.CustomCells_Text0)</p> <p>@Html.Raw(MultiRowRes.CustomCells_Text1)</p> <p>@Html.Raw(MultiRowRes.CustomCells_Text2)</p> }