當使用者選取與 List 控制項關聯的命令時發生。
public event ListCommandEventHandler ItemCommand
備註
當使用範本呈現清單時,會透過 ASP.NET 的事件反昇 (Event Bubbling) 機制呼叫 ItemCommand 事件處理常式。會將 ListCommandEventArgs 型別的引數傳遞給事件處理常式,引數中包含有關來源項目和產生事件的控制項的 CommandName 屬性的資訊。這讓您可呈現具有多重關聯互動的單一清單項目。
在預設呈現上,控制項提供讓使用者可按一下清單項目的基本使用者介面 (UI)。回傳時,會用 ListCommandEventArgs 型別的引數呼叫 ItemCommand 事件處理常式,引數中包含有關來源項目的資訊。此物件的 CommandName 屬性是 null。
範例
下列範例示範如何截獲 ItemCommand 事件來將 List 控制項繫結至陣列,並且使用陣列內容填寫 List 控制項。您也可將 List 控制項繫結至使用 SQL 查詢結果填入的資料集。在後者的情況下,您可將 DataTextField 和 DataValueField 屬性設定為資料行名稱,以當作 MobileListItemCollection 集合中項目的 Text 和 Value 屬性。
<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 方法