ObjectListCommand クラス
アセンブリ: System.Web.Mobile (system.web.mobile.dll 内)
構文
解説
ObjectListCommand オブジェクトは、ObjectList の宣言内で <command> 要素として宣言できます。
また、ObjectListCommand オブジェクトをコントロールの Commands メンバ コレクションに追加して構築し、プログラムによって ObjectList コントロールに追加することもできます。
ObjectListCommand オブジェクトを作成する方法の例を次に示します。このコード例は、ObjectList の概要で取り上げている詳しいコード例の一部です。
<%@ 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>
System.Web.UI.MobileControls.ObjectListCommand
プラットフォーム
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- ObjectListCommand クラスのページへのリンク