當將 List 控制項中的項目繫結至資料時發生。
public event ListDataBindEventHandler ItemDataBind
備註
當建立及資料繫結 List 控制項中的項目時,此事件處理常式從任意運算式設定清單項目的屬性。
List 控制項中的項目屬於 MobileListItem 型別。
當繫結每個資料來源項目時都會引發此事件。這是使用 Text 或 Value 篩選或群組 MobileListitemCollection 集合中的項目的最佳時機。
範例
下列範例示範如何截獲 ItemDataBind 事件。DataValueField 屬性指定所要執行的動作。
<Script language="vb" runat="server">
' Persist across multiple postbacks.
Shared i, j, k As Integer
Class Task
Private _TaskName As String
Private _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
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
' Initialize static variables to zero.
i = 0
j = 0
k = 0
' Initial settings for tasks.
List1.DataValueField = "Status"
List1.DataTextField = "TaskName"
' Create an array and add the tasks to it.
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"))
' Associate and bind the List to the array.
List1.DataSource = arr
List1.DataBind()
End If
End Sub
Sub TaskSummary(sender As [Object], e As ListDataBindEventArgs)
Select Case e.ListItem.Value
Case "Done"
i += 1
Case "Scheduled"
j += 1
Case "Pending"
k += 1
End Select
Label2.Text = "You have " + i.ToString() + " tasks done, " + j.ToString() + " tasks scheduled, and " + k.ToString() + " tasks Pending."
End Sub
Sub TaskStatus(sender As [Object], e As ListCommandEventArgs)
Label3.Text = e.ListItem.Text + " is " + e.ListItem.Value
End Sub
<mobile:Form runat=server id="frm1" >
<mobile:Label runat="server" id="Label1" ForeColor=green
Font-Italic=true />
<mobile:List runat=server id="List1" OnItemDataBind="TaskSummary"
OnItemCommand = "TaskStatus"/>
<mobile:Label runat="server" id="Label2" Font-Italic=true
ForeColor=Red />
<mobile:Label runat="server" id="Label3" Font-Italic=true
ForeColor=Red />
</mobile:Form>
[C#]
<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage"
Language="c#" Debug="true" %>
<script runat=server>
// Persist across multiple postbacks.
static int i,j,k;
class Task
{
private String _TaskName;
private String _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)
{
// Initialize static variables to zero.
i = j = k = 0;
// Initial settings for tasks.
List1.DataValueField="Status";
List1.DataTextField="TaskName";
// Create an array and add the tasks to it.
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"));
// Associate and bind the List to the array.
List1.DataSource = arr;
List1.DataBind ();
if (List1.HasItemCommandHandler)
{
Label1.Text = "List has ItemCommand event handler";
}
else
{
Label1.Text = "List does not have ItemCommand event handler";
}
}
}
void TaskSummary(Object sender, ListDataBindEventArgs e)
{
switch (e.ListItem.Value)
{
case "Done":
i++;
break;
case "Scheduled":
j++;
break;
case "Pending":
k++;
break;
Default:
break;
}
Label2.Text = "You have " + i + " tasks done, "
+ j + " tasks scheduled, and "
+ k + " tasks Pending.";
}
void TaskStatus(Object sender, ListCommandEventArgs e)
{
Label3.Text = e.ListItem.Text +" is " + e.ListItem.Value;
}
</script>
<mobile:Form runat=server id="frm1" >
<mobile:Label runat="server" id="Label1" ForeColor=green
Font-Italic=true />
<mobile:List runat=server id="List1" OnItemDataBind="TaskSummary"
OnItemCommand = "TaskStatus"/>
<mobile:Label runat="server" id="Label2" Font-Italic=true
ForeColor=Red />
<mobile:Label runat="server" id="Label3" Font-Italic=true
ForeColor=Red />
</mobile:Form>
請參閱
ListDataBindEventArgs 類別 (SelectionList) | ObjectList 類別 | ObjectListDataBindEventArgs 類別 | SelectionList 類別 | OnItemDataBind 方法
套用至:List 類別