当 HtmlSelect 控件中的选定项在向服务器的各次发送过程之间更改时,将引发 ServerChange 事件。注意 仅当用户启动向服务器的发送(如单击“提交”按钮)时才引发此事件。该事件不会导致向服务器进行发送。
注意 控件必须启用视图状态才能使 ServerChange 事件正常工作。
当用户更改控件中的所选内容时,您可以使用该事件在 HtmlSelect 控件上执行数据验证。引发事件会通过委托调用事件处理程序。有关更多信息,请参阅引发事件。OnServerChange 方法也允许派生类对事件进行处理而不附加委托。这是处理派生类中的事件的首选技术。对继承者的说明: 在派生类中重写 OnServerChange 时,一定要调用基类的 OnServerChange 方法,以便注册的委托对事件进行接收。示例
[Visual Basic, C#, JScript] 下面的示例说明如何为 HtmlSelect 控件的 ServerChange 事件指定和编写事件处理程序。事件处理程序确定选定的项是否相互兼容。[Visual Basic]
<%@ Page Language="VB"%><html><head> <script runat="server"> Sub Button_Click (sender As Object, e As EventArgs)
Dim i As Integer Label1.Text = "You selected:" For i = 0 to Select1.Items.Count - 1
If Select1.Items(i).Selected Then
Label1.Text = Label1.Text & "<br> -" & Select1.Items(i).Text
End If Next i End Sub Sub Server_Change (sender As Object, e As EventArgs) Dim i As Integer
Dim Count As Integer = 0 For i = 0 to Select1.Items.Count - 1
If Select1.Items(i).Selected Then
Count = Count + 1
End If Next i If Count > 1 And Select1.Items(0).Selected Then Label2.Text = "Hey! You can't select 'All' with another selection!!"
Else Label2.Text = ""
End If End Sub </script></head><body> <form runat="server"> <h3> HtmlSelect Example </h3> Select items from the list: <br><br> <select id="Select1"
Multiple="True"
OnServerChange="Server_Change"
runat="server"> <option value="All"> All </option>
<option value="1" Selected="True"> Item 1 </option>
<option value="2"> Item 2 </option>
<option value="3"> Item 3 </option>
<option value="4"> Item 4 </option>
<option value="5"> Item 5 </option>
<option value="6"> Item 6 </option> </select> <br><br> <button id="Button1"
OnServerClick="Button_Click"
runat="server"> Submit </button> <br><br> <asp:Label id="Label1"
runat="server"/> <br> <asp:Label id="Label2"
runat="server"/> </form></body></html>
注意 控件必须启用视图状态才能使 ServerChange 事件正常工作。
当用户更改控件中的所选内容时,您可以使用该事件在 HtmlSelect 控件上执行数据验证。引发事件会通过委托调用事件处理程序。有关更多信息,请参阅引发事件。OnServerChange 方法也允许派生类对事件进行处理而不附加委托。这是处理派生类中的事件的首选技术。对继承者的说明: 在派生类中重写 OnServerChange 时,一定要调用基类的 OnServerChange 方法,以便注册的委托对事件进行接收。示例
[Visual Basic, C#, JScript] 下面的示例说明如何为 HtmlSelect 控件的 ServerChange 事件指定和编写事件处理程序。事件处理程序确定选定的项是否相互兼容。[Visual Basic]
<%@ Page Language="VB"%><html><head> <script runat="server"> Sub Button_Click (sender As Object, e As EventArgs)
Dim i As Integer Label1.Text = "You selected:" For i = 0 to Select1.Items.Count - 1
If Select1.Items(i).Selected Then
Label1.Text = Label1.Text & "<br> -" & Select1.Items(i).Text
End If Next i End Sub Sub Server_Change (sender As Object, e As EventArgs) Dim i As Integer
Dim Count As Integer = 0 For i = 0 to Select1.Items.Count - 1
If Select1.Items(i).Selected Then
Count = Count + 1
End If Next i If Count > 1 And Select1.Items(0).Selected Then Label2.Text = "Hey! You can't select 'All' with another selection!!"
Else Label2.Text = ""
End If End Sub </script></head><body> <form runat="server"> <h3> HtmlSelect Example </h3> Select items from the list: <br><br> <select id="Select1"
Multiple="True"
OnServerChange="Server_Change"
runat="server"> <option value="All"> All </option>
<option value="1" Selected="True"> Item 1 </option>
<option value="2"> Item 2 </option>
<option value="3"> Item 3 </option>
<option value="4"> Item 4 </option>
<option value="5"> Item 5 </option>
<option value="6"> Item 6 </option> </select> <br><br> <button id="Button1"
OnServerClick="Button_Click"
runat="server"> Submit </button> <br><br> <asp:Label id="Label1"
runat="server"/> <br> <asp:Label id="Label2"
runat="server"/> </form></body></html>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货