ObjectList.ShowItemCommands イベント
アセンブリ: System.Web.Mobile (system.web.mobile.dll 内)

Dim instance As ObjectList Dim handler As ObjectListShowCommandsEventHandler AddHandler instance.ShowItemCommands, handler
public: event ObjectListShowCommandsEventHandler^ ShowItemCommands { void add (ObjectListShowCommandsEventHandler^ value); void remove (ObjectListShowCommandsEventHandler^ value); }

このイベントの引数は、項目とコマンドのコレクションへの参照を保持します。イベント ハンドラを使うと、項目に応じてコレクションをカスタマイズできます。ShowItemCommands イベントにより、項目固有のショートカット メニューに相当する機能をアプリケーション内で実現できます。このイベントの発生中にコマンドのコレクションに対して加えられた変更は、保持されません。
このイベントは、ItemSelect イベントの後に呼び出されます。このイベントを使用すると、詳細ビューを表示する前に他のタスクを実行できます。リスト ビューで選択された項目に応じて、フィールドを追加または削除したり、並べ替えたりできます。

ShowItemCommands イベントを使用して、ObjectList の詳細ビューの ObjectListCommandCollection から項目を削除する方法を次のコード例に示します。削除する項目は、リスト ビューで選択されます。
![]() |
---|
次のコード サンプルはシングルファイル コード モデルを使用しており、分離コード ファイルに直接コピーされた場合は正常に動作しない可能性があります。このコード サンプルは、拡張子が .aspx の空のテキスト ファイルにコピーする必要があります。詳細については、「ASP.NET Web ページのコード モデル」を参照してください。 |
<%@ Page Language="VB" Inherits="System.Web.UI.MobileControls.MobilePage" %> <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %> <script runat="server"> ' System.Web.UI.MobileControls.ObjectListItem item ' System.Web.UI.MobileControls.ObjectListItemCollection itemColl ' Get the persisted array through postbacks. Private arr As New ArrayList() Public Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) If Not IsPostBack Then ' Create and fill the array arr.Add(new Task("Tomorrow's work", "Yes", 1)) arr.Add(new Task("Today's work", "Yes", 1)) arr.Add(new Task("Yesterday's work", "No", 1)) ' Persist the array in the Session object Session("MyArrayList") = arr ' Associate and bind array to the ' ObjectList for each postback. ObjectList1.DataSource = arr ObjectList1.LabelField = "TaskName" ObjectList1.DataBind() End If End Sub Private Sub SelectCommand(ByVal sender As Object, _ ByVal e As ObjectListCommandEventArgs) ' Get the array from the Session object arr = CType(Session("MyArrayList"), ArrayList) ' Remove selected item from the ObjectLis Dim i As Integer = ObjectList1.SelectedIndex arr.RemoveAt(i) Session("MyArrayList") = arr ' Re-Bind ObjectList to altered ArrayList. ObjectList1.DataSource = arr ObjectList1.LabelField = "TaskName" ObjectList1.DataBind() ObjectList1.ViewMode = ObjectListViewMode.List End Sub Public Sub ShowTaskDetail(ByVal sender As Object, _ ByVal e As ObjectListShowCommandsEventArgs) ' Check conditions, and add or remove ' commands in the detail view. If e.ListItem("Editable").Equals("No") Then ObjectList1.Commands.RemoveAt(0) ElseIf ObjectList1.Commands.Count < 1 Then ObjectList1.Commands.Add(New ObjectListCommand("Delete", "Delete")) End If End Sub Private Class Task Private _TaskName As String Private _Editable As String Private _Days As Integer Public Sub New(ByVal TaskName As String, _ ByVal Editable As String, ByVal Days As Integer) _TaskName = TaskName _Editable = Editable _Days = Days End Sub Public ReadOnly Property TaskName() As String Get Return _TaskName End Get End Property Public ReadOnly Property Editable() As String Get Return _Editable End Get End Property Public ReadOnly Property Days() As Integer Get Return _Days End Get End Property End Class </script> <html xmlns="http:'www.w3.org/1999/xhtml" > <body> <mobile:Form runat="server" id="Form1" > <mobile:ObjectList runat="server" id="ObjectList1" OnItemCommand="SelectCommand" OnShowItemCommands="ShowTaskDetail" > <Command Name="Delete" Text="Delete" /> </mobile:ObjectList> <mobile:Label runat="server" id="Label1" /> <mobile:Label runat="server" id="Label2" /> </mobile:Form> </body> </html>
<%@ Page Language="C#" Inherits="System.Web.UI.MobileControls.MobilePage" %> <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %> <script runat="server"> //System.Web.UI.MobileControls.ObjectListItem item; //System.Web.UI.MobileControls.ObjectListItemCollection itemColl; // Get the persisted array through postbacks. ArrayList arr = new ArrayList(); public void Page_Load(Object sender, EventArgs e) { if (!IsPostBack) { // Create and fill the array arr.Add(new Task("Tomorrow's work", "Yes", 1)); arr.Add(new Task("Today's work", "Yes", 1)); arr.Add(new Task("Yesterday's work", "No", 1)); // Persist the array in the Session object Session["MyArrayList"] = arr; // Associate and bind array to the // ObjectList for each postback. ObjectList1.DataSource = arr; ObjectList1.LabelField = "TaskName"; ObjectList1.DataBind(); } } private void ItemCommand_Click(Object sender, ObjectListCommandEventArgs e) { // Get the array from the Session object arr = (ArrayList)Session["MyArrayList"]; // Remove selected item from the ObjectLis int i = ObjectList1.SelectedIndex; arr.RemoveAt(i); Session["MyArrayList"] = arr; // Re-Bind ObjectList to altered ArrayList. ObjectList1.DataSource = arr; ObjectList1.LabelField = "TaskName"; ObjectList1.DataBind(); ObjectList1.ViewMode = ObjectListViewMode.List; } void ItemCommands_Show(Object sender, ObjectListShowCommandsEventArgs e) { // Check conditions, and add or remove // commands in the detail view. if (e.ListItem["Editable"].Equals("No")) ObjectList1.Commands.RemoveAt(0); else if (ObjectList1.Commands.Count < 1) ObjectList1.Commands.Add(new ObjectListCommand("Delete", "Delete")); } private class Task { private string _TaskName; private string _Editable; private int _Days; public Task(string TaskName, string Editable, int Days) { _TaskName = TaskName; _Editable = Editable; _Days = Days; } public string TaskName { get { return _TaskName; } } public string Editable { get { return _Editable; } } public int Days { get { return _Days; } } } </script> <html > <body> <mobile:Form runat="server" id="Form1" > <mobile:ObjectList runat="server" id="ObjectList1" OnItemCommand="ItemCommand_Click" OnShowItemCommands="ItemCommands_Show" > <Command Name="Delete" Text="Delete" /> </mobile:ObjectList> <mobile:Label runat="server" id="Label1" /> <mobile:Label runat="server" id="Label2" /> </mobile:Form> </body> </html>

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からObjectList.ShowItemCommands イベントを検索する場合は、下記のリンクをクリックしてください。

- ObjectList.ShowItemCommands イベントのページへのリンク