SelectionList.SelectedIndexChanged 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
每当用户更改 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 Web 窗体页语法概述。
<%@ 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>
注解
更改客户端上的选择不会生成回发事件。 如果回发事件由其他控件生成,并且所选内容已更改,则会在服务器上调用此事件。