Menuコントロールは、FlexGrid、ListBoxなどの他のMVCコントロールと一緒にコンテキストメニューとして使用できます。ユーザーがコントロール内で右クリックすると、ユーザーによって追加されたカスタムフィールドを含むコンテキストメニューとしてMenuが表示されます。さまざまな項目をMenuに追加することで、FlexGridのフィルタ処理、ソート、グループ化などの各種操作ができます。Menuコントロールと他のMVCコントロールとのシームレスな統合により、ユーザーは項目を追加し、コントロールのIDをMenuのOwnerプロパティに割り当てて、コントロールのコンテキストメニューをカスタマイズできます。
この例では、MenuはFlexGridコントロールのグループ化を有効にするコンテキストメニューとして使用されます。GroupBy: CountryとGroupBy: Productという2つのフィールドがMenuに追加されることで、FlexGridのデータがCountry列とProduct列でグループ化されます。ユーザーは、グリッド内で右クリックしてコンテキストメニューから項目を選択できます。
次の図は、Menuコントロールをコンテキストメニューとして追加した後のFlexGridを示しています。
次のコード例は、メニューコントロールをFlexGridでContext Menuとして使用する方法を示します。
ContextMenuController.cs
Razor |
コードのコピー
|
---|---|
public ActionResult Index() { return View(Sale.GetData(10)); } } |
ContextMenu.cshtml
HTML |
コードのコピー
|
---|---|
@using TagHelperExplorer.Models @using C1.Web.Mvc.Grid @{ List<string> group = new List<string> { "国名","製品名" }; } @model IEnumerable<Sale> <style> .flexGrid { margin: 10px; padding: 20px; color: white; display: inline-block; } </style> <script> //CollectionViewを使用するグリッドのソート関数 function setGrouping(arg) { var grid = wijmo.Control.getControl("#Sales"); var cv = grid.collectionView; var gd = cv.groupDescriptions; gd.push(new wijmo.collections.PropertyGroupDescription(arg)); } </script> <div > <c1-flex-grid auto-generate-columns="false" id="Sales" height="450" width="700" allow-add-new="true" selection-mode="SelectionMode.Cell" class="grid" > </c1-flex-grid> // FlexGridで列が表示されるように定義します <c1-flex-grid-column binding="ID"> </c1-flex-grid-column> <c1-flex-grid-column binding="開始日" format="MMM d yy"> </c1-flex-grid-column> <c1-flex-grid-column binding="製品名"> </c1-flex-grid-column> <c1-flex-grid-column binding="金額" format="c"> </c1-flex-grid-column> <c1-flex-grid-column binding="割引" format="p0"> </c1-flex-grid-column> <c1-flex-grid-column binding="アクティブ"> </c1-flex-grid-column> </div> //C1Menuコントロールを初期化します <c1-menu header="グループで表示" execute-command="setGrouping" style="display: none" id="ctxMenu" owner="#Sales"> <c1-menu-item header="グループで表示: 国名" command-parameter="group[0]"> </c1-menu-item> <c1-menu-item header="グループで表示: 製品名" command-parameter="group[1]"> </c1-menu-item> </c1-menu> |