共用方式為


ItemCommand 事件 (List)

當使用者選取與 List 控制項關聯的命令時發生。

public event ListCommandEventHandler ItemCommand

備註

當使用範本呈現清單時,會透過 ASP.NET 的事件反昇 (Event Bubbling) 機制呼叫 ItemCommand 事件處理常式。會將 ListCommandEventArgs 型別的引數傳遞給事件處理常式,引數中包含有關來源項目和產生事件的控制項的 CommandName 屬性的資訊。這讓您可呈現具有多重關聯互動的單一清單項目。

在預設呈現上,控制項提供讓使用者可按一下清單項目的基本使用者介面 (UI)。回傳時,會用 ListCommandEventArgs 型別的引數呼叫 ItemCommand 事件處理常式,引數中包含有關來源項目的資訊。此物件的 CommandName 屬性是 null

範例

下列範例示範如何截獲 ItemCommand 事件來將 List 控制項繫結至陣列,並且使用陣列內容填寫 List 控制項。您也可將 List 控制項繫結至使用 SQL 查詢結果填入的資料集。在後者的情況下,您可將 DataTextFieldDataValueField 屬性設定為資料行名稱,以當作 MobileListItemCollection 集合中項目的 TextValue 屬性。

<script Language="vb" runat="server">
Public Class Task
   Private _TaskName, _Status As String

   Public Sub New(TaskName As String, Status As String) 
      _TaskName = TaskName 
      _Status = Status
   End Sub

   Public Readonly Property TaskName As String
      Get
         return _TaskName
      End Get
   End Property
   Public Readonly Property Status As String
      Get
         return _Status
      End Get
   End Property
End Class

Public Sub Page_Load(sender As Object, e As EventArgs)
   If Not IsPostBack
      List1.DataValueField = "Status"
      List1.DataTextField = "TaskName"
      Dim arr As New ArrayList()
      arr.Add (New Task ("Verify transactions", "done"))
      arr.Add (New Task ("Check balance sheet", "scheduled"))
      arr.Add (New Task ("Send report", "pending"))
      List1.DataSource = arr
      List1.DataBind ()
   End If
End Sub

Sub ShowStatus (sender As Object, e As ListCommandEventArgs) 
   Label1.Text = e.ListItem.Text + " is " + e.ListItem.Value
End Sub
</script>

<mobile:Form runat="server" id="Form1" >
   <mobile:List runat="server" id="List1" 
      OnItemCommand="ShowStatus" />
   <mobile:Label runat="server" id="Label1" ForeColor=green 
      Font-Italic=true />
</mobile:Form>
[C#]

<script Language="c#" runat="server">
class Task
{
   private String _TaskName, _Status;

   public Task(String TaskName, String Status) 
   { 
      _TaskName = TaskName; 
      _Status = Status;
   }

   public String TaskName { get { return _TaskName; } }
   public String Status { get { return _Status; } }
}

public void Page_Load(Object sender, EventArgs e)
{
   if (!IsPostBack)
   {
      List1.DataValueField="Status";
      List1.DataTextField="TaskName";
      ArrayList arr = new ArrayList();
      arr.Add (new Task ("Verify transactions", "done"));
      arr.Add (new Task ("Check balance sheet", "scheduled"));
      arr.Add (new Task ("Send report", "pending"));
      List1.DataSource = arr;
      List1.DataBind ();
   }
}

void ShowStatus(Object sender, ListCommandEventArgs e)
{ 
   Label1.Text = e.ListItem.Text+ " is " + e.ListItem.Value;
}
</script>

<mobile:Form runat="server" id="Form1" >
   <mobile:List runat="server" id="List1" 
      OnItemCommand="ShowStatus" />
   <mobile:Label runat="server" id="Label1" ForeColor=green 
      Font-Italic=true />
</mobile:Form>

請參閱

Command 類別 | CommandEventArgs 類別 (Command) | ItemCommand 事件 (ObjectList) | ObjectListCommandEventArgs 類別 | OnItemCommand 方法

List 類別