Поделиться через


SelectionList.SelectedIndexChanged Событие

Определение

Происходит всякий раз, когда пользователь изменяет выделение объекта SelectionList. Этот API устарел. Сведения о разработке ASP.NET мобильных приложений см. в статье Мобильные приложения & сайты с ASP.NET.

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>

Комментарии

Изменение выбора на клиенте не приводит к возникновению события обратной передачи. Это событие вызывается на сервере, если событие обратной передачи создается каким-то другим элементом управления и выбор был изменен.

Применяется к

См. также раздел