SelectedIndexChanged, événement
Se produit chaque fois qu'un utilisateur change la sélection d'un objet SelectionList.
public event EventHandler SelectedIndexChanged
Notes
La modification de la sélection sur le client ne génère pas d'événement de publication. Cet événement est appelé sur le serveur lorsqu'un événement de publication est généré par un autre contrôle et que la sélection est modifiée.
Exemple
L'exemple suivant montre comment utiliser un événement SelectedIndexChanged à la suite d'une publication effectuée à partir d'un contrôle Command. La valeur de l'élément sélectionné est affichée grâce à un contrôle Label via l'événement géré SelectedIndexChanged.
[Visual Basic]
<Script language="vb" runat="server">
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 Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Dim arr As New ArrayList()
arr.Add(New Task("Verify transactions", "Done"))
arr.Add(New Task("Check balance sheet", "Scheduled"))
arr.Add(New Task("Call customer", "Done"))
arr.Add(New Task("Pay checks", "Pending"))
arr.Add(New Task("Send report", "Pending"))
arr.Add(New Task("Attend meeting", "Scheduled"))
SelectionList1.SelectType = System.Web.UI.MobileControls.ListSelectType.MultiSelectListBox
SelectionList1.Wrapping = System.Web.UI.MobileControls.Wrapping.NoWrap
SelectionList1.DataValueField = "Status"
SelectionList1.DataTextField = "TaskName"
SelectionList1.DataSource = arr
SelectionList1.DataBind()
' Initial setting shows the value of the first
' item from the MobileListItemCollection object
' of SelectionList1.
Label2.Text = "Taskes are arranged by their priority"
End If
End Sub
Sub ShowStatus(sender As Object, e As EventArgs)
'Expanding the selection list's view to see all items in the list.
SelectionList1.Rows = SelectionList1.Items.Count
Label1.Text = SelectionList1.Selection.Text + " is " + SelectionList1.Selection.Value.ToString() + ". Priority of Task is " + (SelectionList1.SelectedIndex + 1).ToString()
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 Form1_Activate (sender As Object, e As EventArgs)
i = 0
j = 0
k = 0
End Sub
<mobile:Form runat="server" id="Form1"
OnActivate="Form1_Activate" Paginate= true>
<mobile:Label runat="server" id="Label1" />
<mobile:Label runat="server" id="Label2" Font-bold=true/>
<mobile:SelectionList runat="server" id="SelectionList1"
OnSelectedIndexChanged="ShowStatus"
OnItemDataBind="TaskSummary"/>
<mobile:Command runat="server" Text="Show Status" />
</mobile:Form>
<script language="c#" runat="server">
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)
{
ArrayList arr = new ArrayList();
arr.Add (new Task ("Verify transactions", "Done"));
arr.Add (new Task ("Check balance sheet", "Scheduled"));
arr.Add (new Task ("Call customer", "Done"));
arr.Add (new Task ("Pay checks", "Pending"));
arr.Add (new Task ("Send report", "Pending"));
arr.Add (new Task ("Attend meeting", "Scheduled"));
SelectionList1.SelectType =
System.Web.UI.MobileControls.ListSelectType.MultiSelectListBox;
SelectionList1.Wrapping =
System.Web.UI.MobileControls.Wrapping.NoWrap;
SelectionList1.DataValueField = "Status";
SelectionList1.DataTextField = "TaskName"; SelectionList1.DataSource = arr;
SelectionList1.DataBind();
// Initial setting shows the value of the first
// item from the MobileListItemCollection object
// of SelectionList1.
Label2.Text = "Tasks are arranged by their priority";
}
}
void ShowStatus(Object sender, EventArgs e)
{
//Expanding the selection list's view to see all items in the list.
SelectionList1.Rows = SelectionList1.Items.Count;
Label1.Text = SelectionList1.Selection.Text +
" is " +
SelectionList1.Selection.Value +
". Priority of Task is " +
(SelectionList1.SelectedIndex + 1);
}
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 Form1_Activate (object sender, EventArgs e)
{
i = j = k = 0;
}
</script>
<mobile:Form runat="server" id="Form1"
OnActivate="Form1_Activate" Paginate= true>
<mobile:Label runat="server" id="Label1" />
<mobile:Label runat="server" id="Label2" Font-bold=true/>
<mobile:SelectionList runat="server" id="SelectionList1"
OnSelectedIndexChanged="ShowStatus"
OnItemDataBind="TaskSummary"/>
<mobile:Command runat="server" Text="Show Status" />
</mobile:Form>
Voir aussi
OnSelectedIndexChanged, méthode |SelectionList, classe