共用方式為


SelectionList.SelectedIndexChanged 事件

定義

每當使用者變更 SelectionList 物件的選取範圍時發生。 這個 API 已經過時。 如需如何開發 ASP.NET 行動應用程式的資訊,請參閱 具有 ASP.NET 的Mobile Apps & Sites

public:
 event EventHandler ^ SelectedIndexChanged;
public event EventHandler SelectedIndexChanged;
member this.SelectedIndexChanged : EventHandler 
Public Custom Event SelectedIndexChanged As EventHandler 

事件類型

範例

下列程式代碼範例示範如何使用 SelectedIndexChanged 事件。 它也會示範如何使用 Rows 回傳上的 屬性來展開清單。

注意

下列程式代碼範例會使用單一檔案程式代碼模型,如果直接複製到程式代碼後置檔案,可能無法正常運作。 此程式代碼範例必須複製到擴展名為 .aspx的空文本檔。 如需詳細資訊,請參閱 ASP.NET 網頁語法概觀

<%@ Page Language="C#" 
    Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile" 
    Namespace="System.Web.UI.MobileControls" 
    Assembly="System.Web.Mobile" %>

<script runat="server">
    public void Page_Load(Object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // Create data for the list
            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 ("Issue checks",          "Pending"));
            arr.Add (new 
                Task ("Send report",         "Pending"));
            arr.Add (new 
                Task ("Attend meeting",      "Scheduled"));
            
            // Set properties for the list
            SelList1.SelectType = 
                ListSelectType.ListBox;
            SelList1.Wrapping = Wrapping.NoWrap;
            SelList1.DataValueField = "Status";
            SelList1.DataTextField  = "TaskName";
            SelList1.Rows = 3;

            // Bind the list to the data
            SelList1.DataSource = arr;
            SelList1.DataBind ();

            Label1.Text = "Select an item and click the button.";
            Label2.Text = "Tasks are arranged by priority";
        }
    }
    
    void ShowStatus(Object sender, EventArgs e)
    {
        string statusSpec = "Status: {0} is {1}";
        string prioSpec = "Priority: {0}";
        
        // Expand the list to show all items
        SelList1.Rows = SelList1.Items.Count;

        // Display the status
        Label1.Text = String.Format(statusSpec, 
            SelList1.Selection.Text,
            SelList1.Selection.Value);
        // Display the priority
        Label2.Text = String.Format(prioSpec, 
            (SelList1.SelectedIndex + 1));
    }

    // Custom class for the task data
    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; } }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
    <mobile:Form runat="server" id="Form1">
        <mobile:Label runat="server" id="Label1" />
        <mobile:Label runat="server" id="Label2" />
        <mobile:SelectionList runat="server" id="SelList1" 
            OnSelectedIndexChanged="ShowStatus" />
        <mobile:Command ID="Command1" runat="server" 
            Text="Show Status" />
    </mobile:Form>
</body>
</html>
<%@ Page Language="VB" 
    Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile" 
    Namespace="System.Web.UI.MobileControls" 
    Assembly="System.Web.Mobile" %>

<script runat="server">
    Public Sub Page_Load(ByVal sender As Object, _
        ByVal e As EventArgs)

        If Not IsPostBack Then
            ' Create data for the list
            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("Issue checks", "Pending"))
            arr.Add(New _
                Task("Send report", "Pending"))
            arr.Add(New _
                Task("Attend meeting", "Scheduled"))
            
            ' Set properties for the list
            SelList1.SelectType = _
                ListSelectType.ListBox
            SelList1.Wrapping = Wrapping.NoWrap
            SelList1.DataValueField = "Status"
            SelList1.DataTextField  = "TaskName"
            SelList1.Rows = 3

            ' Bind the list to the data
            SelList1.DataSource = arr
            SelList1.DataBind ()

            Label1.Text = "Select an item and click the button."
            Label2.Text = "Tasks are arranged by priority"
        End If
    End Sub
    
    Private Sub ShowStatus(ByVal sender As Object, ByVal e As EventArgs)
        Const statusSpec As String = "Status: {0} is {1}"
        Const prioSpec As String = "Priority: {0}"
        
        ' Expand the list to show all items
        SelList1.Rows = SelList1.Items.Count

        ' Display the status
        Label1.Text = String.Format(statusSpec, _
            SelList1.Selection.Text, _
            SelList1.Selection.Value)
        ' Display the priority
        Label2.Text = String.Format(prioSpec, _
            (SelList1.SelectedIndex + 1))
    End Sub

    ' Custom class for the task data
    Class Task
        Private _TaskName As String
        Private _Status As String

        Public Sub New(ByVal TaskName As String, _
            ByVal 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
</script>

<html xmlns="http:'www.w3.org/1999/xhtml" >
<body>
    <mobile:Form runat="server" id="Form1">
        <mobile:Label runat="server" id="Label1" />
        <mobile:Label runat="server" id="Label2" />
        <mobile:SelectionList runat="server" id="SelList1" 
            OnSelectedIndexChanged="ShowStatus" />
        <mobile:Command ID="Command1" runat="server" 
            Text="Show Status" />
    </mobile:Form>
</body>
</html>

備註

變更用戶端上的選取範圍不會產生回傳事件。 如果回傳事件是由一些其他控件產生,而且選取範圍已變更,就會在伺服器上呼叫此事件。

適用於

另請參閱