HtmlButton.OnServerClick(EventArgs) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывает событие ServerClick. Это позволяет предоставить пользовательский обработчик для события.
protected:
virtual void OnServerClick(EventArgs ^ e);
protected virtual void OnServerClick(EventArgs e);
abstract member OnServerClick : EventArgs -> unit
override this.OnServerClick : EventArgs -> unit
Protected Overridable Sub OnServerClick (e As EventArgs)
Параметры
Примеры
В следующем примере кода показано, как декларативно указать и закодировать обработчик событий для ServerClick события. HtmlButton При щелчке элемента управления отображается значение, введенное в текстовое поле.
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<script language="C#" runat="server">
protected void FancyBtn_Click(object sender, EventArgs e)
{
Message.InnerHtml = "Your name is: " + Name.Value;
}
</script>
<head runat="server">
<title> Enter Name: </title>
</head>
<body>
<form id="form1" method="post" runat="server">
<h3> Enter Name: <input id="Name" type="text" size="40" runat="server" />
</h3>
<button onserverclick=" FancyBtn_Click" runat="server" id="BUTTON1">
<b><i> I'm a fancy HTML 4.0 button </i> </b>
</button>
<h1>
<span id="Message" runat="server"></span>
</h1>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<script language="VB" runat="server">
Sub FancyBtn_Click(Source As Object, E as EventArgs)
Message.InnerHtml = "Your name is: " & Name.Value
End Sub
</script>
<head runat="server">
<title> Enter Name: </title>
</head>
<body>
<form id="form1" method="post" runat="server">
<h3> Enter Name: <input id="Name" type="text" size="40" runat="server" />
</h3>
<button onserverclick=" FancyBtn_Click" runat="server">
<b><i> I'm a fancy HTML 4.0 button </i> </b>
</button>
<h1>
<span id="Message" runat="server"></span>
</h1>
</form>
</body>
</html>
В следующем примере кода показано, как программно указать и закодировать обработчик событий для ServerClick события.
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> HtmlButton Constructor Example </title>
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
// Create a new HtmlButton control.
HtmlButton NewButtonControl = new HtmlButton();
// Set the properties of the new HtmlButton control.
NewButtonControl.ID = "NewButtonControl";
NewButtonControl.InnerHtml = "Click Me";
// Create an EventHandler delegate for the method you want to handle the event
// and then add it to the list of methods called when the event is raised.
NewButtonControl.ServerClick += new System.EventHandler(this.Button_Click);
// Add the new HtmlButton control to the Controls collection of the
// PlaceHolder control.
ControlContainer.Controls.Add(NewButtonControl);
}
void Button_Click(Object sender, EventArgs e)
{
// Display a simple message.
Message.InnerHtml = "Thank you for clicking the button.";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h3> HtmlButton Constructor Example </h3>
<asp:PlaceHolder ID="ControlContainer"
runat="server"/>
<br /><br />
<span id="Message"
runat="server"/>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> HtmlButton Constructor Example </title>
<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
' Create a new HtmlButton control.
Dim NewButtonControl As New HtmlButton()
' Set the properties of the new HtmlButton control.
NewButtonControl.ID = "NewButtonControl"
NewButtonControl.InnerHtml = "Click Me"
' Create an EventHandler delegate for the method you want to handle the event
' and then add it to the list of methods called when the event is raised.
AddHandler NewButtonControl.ServerClick, AddressOf Button_Click
' Add the new HtmlButton control to the Controls collection of the
' PlaceHolder control.
ControlContainer.Controls.Add(NewButtonControl)
End Sub
Sub Button_Click(sender As Object, e As EventArgs)
' Display a simple message.
Message.InnerHtml = "Thank you for clicking the button."
End Sub
</script>
</head>
<body>
<form id="form1" runat="server">
<h3> HtmlButton Constructor Example </h3>
<asp:PlaceHolder ID="ControlContainer"
runat="server"/>
<br /><br />
<span id="Message"
runat="server"/>
</form>
</body>
</html>
Комментарии
Событие ServerClick возникает при HtmlButton щелчке элемента управления. Это событие приводит к возникновению кругового пути от клиента к серверу и обратно. Это намеренно отличается от события на стороне OnClick клиента. Если конфликт существует между выполнением кода с ServerClick событием и кодом, выполняемым событием на стороне клиента, инструкции по событиям на стороне OnClick сервера переопределяют клиентский код.
При вызове события обработчик событий вызывается через делегат. Дополнительные сведения см. в разделе "Обработка и создание событий".
Метод OnServerClick также позволяет производным классам обрабатывать событие без присоединения делегата. Это предпочтительный способ обработки события в производном классе.
Примечания для тех, кто наследует этот метод
При переопределении OnServerClick(EventArgs) в производном классе обязательно вызовите метод базового класса OnServerClick(EventArgs) , чтобы зарегистрированные делегаты получали событие.