PowerTools SPREAD for ASP.NET 8.0J
コンテキストメニュー

コントロールに専用のコンテキストメニューを表示できます。 コンテキストメニューは、ユーザーが列ヘッダ、行ヘッダ、またはビューポート領域(データ領域と空白領域)を右クリックした場合に表示できます。

メニューにメニュー項目を追加したり、画像を表示するなど、さまざまなカスタマイズが可能です。また、列ヘッダ、行ヘッダあるいはビューポート領域にそれぞれ別のメニューの表示もできます。

メニュー項目が選択されたとき、サーバーおよびクライアント側の両方でイベントをハンドルできます。

設定方法

専用のコンテキストメニューの表示を有効にするには、FpSpread クラスEnableContextMenu プロパティをtrueに設定する必要があります。

コンテキストメニューは、FpSpread クラスのContextMenus プロパティが参照するコレクションに追加されます。コンテキストメニューオブジェクトは、ContextMenu クラスを使用して生成され、このクラスのType プロパティを使用して、コンテキストメニューの表示対象(列ヘッダ、行ヘッダまたはビューポート領域)を設定します。

メニュー項目は、MenuItem クラスを使用して生成し、ContextMenu クラスのItems プロパティ が参照するコレクションに追加します。

MenuItem クラスの各プロパティを使用して、メニュー項目の詳細を設定します。CommandArgument プロパティおよびCommandName プロパティを使用すると、メニュー項目がクリックされたときにサーバー側で発生するMenuItemClicked イベントのパラメータを使用して識別できます。

OnClientClick プロパティには、クライアント側で発生するイベントを割り当てることができます。

子項目の生成にもMenuItem クラスを使用し、親項目MenuItem クラスのChildItems プロパティのコレクションに追加します。

コンテキストメニューは、デザイン画面での生成も可能です。プロパティウィンドウのContextMenus プロパティの「...」ボタンを押下すると、コンテキストメニューエディタが起動します。コンテキストメニューエディタで作成したメニューは、マークアップコードを生成します。

サンプルコード

次のサンプルコードは、設計時に1つのメニューを作成して、実行時にもう1つのメニューを作成します。

<ContextMenus>
   <FarPoint:ContextMenu Type="Viewport">
       <Items>
           <FarPoint:MenuItem Text="Sort" ImageUrl="http://linktoimagehere/abc.jpc">
               <ChildItems>
                   <FarPoint:MenuItem  Text="Child Item1 ImageUrl="http://avc/abc.jpc"></FarPoint:MenuItem>
                     <FarPoint:MenuItem Text="Child Item2"></FarPoint:MenuItem>
                 </ChildItems>
             </FarPoint:MenuItem>
             <FarPoint:MenuItem Enabled="True" Text="Menu item3"  ImageUrl="http://linktoimagehere/abc.jpc"></FarPoint:MenuItem>
         </Items>
     </FarPoint:ContextMenu>
</ContextMenus>
protected void Page_Load(object sender, System.EventArgs e)
{
     if (this.IsPostBack) return;
     FpSpread1.EnableContextMenu = true;
     // マークアップコードを使用するか、または[プロパティ]ウィンドウでContextMenusプロパティを使用して、このビューポートメニューを作成します。
     FarPoint.Web.Spread.ContextMenu viewportMenu = FpSpread1.ContextMenus[FarPoint.Web.Spread.ContextMenuType.Viewport];
     FarPoint.Web.Spread.MenuItem customViewportItem = new FarPoint.Web.Spread.MenuItem("Viewport item 1");
     customViewportItem.ChildItems.Add(new FarPoint.Web.Spread.MenuItem("Child item 1"));
     customViewportItem.ChildItems.Add(new FarPoint.Web.Spread.MenuItem("Child item 2"));
     viewportMenu.Items.Add(customViewportItem);
     // この行ヘッダメニューをここで作成します(マークアップや設計時プロパティは使用しない)
     FarPoint.Web.Spread.ContextMenu rowHeaderContextMenu = new FarPoint.Web.Spread.ContextMenu();
     rowHeaderContextMenu.Type = FarPoint.Web.Spread.ContextMenuType.RowHeader;
     FarPoint.Web.Spread.MenuItem rowHeaderItem = new FarPoint.Web.Spread.MenuItem("RowHeader item 1");
     rowHeaderItem.ChildItems.Add(new FarPoint.Web.Spread.MenuItem("Child item 1"));
     rowHeaderItem.ChildItems.Add(new FarPoint.Web.Spread.MenuItem("Child item 2"));
     rowHeaderContextMenu.Items.Add(rowHeaderItem);
     FpSpread1.ContextMenus.Add(rowHeaderContextMenu);
}
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     If (IsPostBack) Then
         Return
     End If
     FpSpread1.EnableContextMenu = True
     ' マークアップコードを使用するか、または[プロパティ]ウィンドウでContextMenusプロパティを使用して、このビューポートメニューを作成します。
    Dim viewportMenu As FarPoint.Web.Spread.ContextMenu =FpSpread1.ContextMenus(FarPoint.Web.Spread.ContextMenuType.Viewport)
     Dim customViewportItem As New FarPoint.Web.Spread.MenuItem("Viewport item 1")
     customViewportItem.ChildItems.Add(New FarPoint.Web.Spread.MenuItem("Child item 1"))
     customViewportItem.ChildItems.Add(New FarPoint.Web.Spread.MenuItem("Child item 2"))
     viewportMenu.Items.Add(customViewportItem)
     ' この行ヘッダメニューをここで作成します(マークアップや設計時プロパティは使用しない)
     Dim rowHeaderContextMenu As New FarPoint.Web.Spread.ContextMenu()
     rowHeaderContextMenu.Type = FarPoint.Web.Spread.ContextMenuType.RowHeader
     Dim rowHeaderItem As New FarPoint.Web.Spread.MenuItem("RowHeader item 1")
     rowHeaderItem.ChildItems.Add(New FarPoint.Web.Spread.MenuItem("Child item 1"))
     rowHeaderItem.ChildItems.Add(New FarPoint.Web.Spread.MenuItem("Child item 2"))
     rowHeaderContextMenu.Items.Add(rowHeaderItem)
     FpSpread1.ContextMenus.Add(rowHeaderContextMenu)
End Sub
       


関連トピック

 

 


© 2003-2015, GrapeCity inc. All rights reserved.