Beispiel für ein Postback-Ereignis
Im folgenden Beispiel wird eine benutzerdefinierte Schaltfläche namens MyButton
erstellt. Diese Schaltfläche bewirkt ein Postback, fängt das Postback-Ereignis auf und löst ein Click
-Ereignis auf dem Server aus. Eine Anleitung zum Erstellen des Beispiels finden Sie unter Beispiele für Serversteuerelemente.
using System;
using System.Web.UI;
namespace CustomControls
{
public class MyButton: Control, IPostBackEventHandler
{
// Defines the Click event.
public event EventHandler Click;
// Invokes delegates registered with the Click event.
protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
Click(this, e);
}
}
// Method of IPostBackEventHandler that raises change events.
public void RaisePostBackEvent(string eventArgument)
{
OnClick(EventArgs.Empty);
}
protected override void Render(HtmlTextWriter output)
{
output.Write("<INPUT TYPE=submit name=" + this.UniqueID +
" Value='Click Me' />");
}
}
}
[Visual Basic]
Option Explicit
Option Strict
Imports System
Imports System.Web.UI
Namespace CustomControls
Public Class MyButton
Inherits Control
Implements IPostBackEventHandler
' Defines the Click event.
Public Event Click As EventHandler
' Invokes delegates registered with the Click event.
Protected Overridable Sub OnClick(e As EventArgs)
RaiseEvent Click(Me, e)
End Sub
' Method of IPostBackEventHandler that raises change events.
Public Sub RaisePostBackEvent(eventArgument As String) Implements IPostBackEventHandler.RaisePostBackEvent
OnClick(EventArgs.Empty)
End Sub
Protected Overrides Sub Render(output As HtmlTextWriter)
output.Write("<INPUT TYPE=submit name=" & Me.UniqueID & _
" Value='Click Me' />")
End Sub
End Class
End Namespace
Verwenden des Steuerelements auf einer Seite
Im folgenden Beispiel wird die oben definierte Schaltfläche MyButton
auf einer ASP.NET-Seite verwendet.
<%@ Register TagPrefix="Custom" Namespace="CustomControls" Assembly = "CustomControls" %>
<script language="C#" runat=server>
private void Button_Click(Object sender, EventArgs e) {
TextBox.BackColor = System.Drawing.Color.Green;
TextBox.Text = "You clicked the button";
}
</script>
<html>
<body>
<form runat=server>
Here is the custom button.<br>
<Custom:MyButton Id = "Button" OnClick = "Button_Click" runat=server/>
<br><br>
<asp:TextBox id = "TextBox" Text = "Click the button" Width = "200" BackColor = "Cyan" runat=server/>
<br>
</form>
</body>
</html>
[Visual Basic]
<%@ Register TagPrefix="Custom" Namespace="CustomControls" Assembly = "CustomControls" %>
<script language="VB" runat=server>
Private Sub Button_Click(sender As Object, e As EventArgs)
TextBox.BackColor = System.Drawing.Color.Green
TextBox.Text = "You clicked the button"
End Sub
</script>
<html>
<body>
<form runat=server>
Here is the custom button.<br>
<Custom:MyButton Id = "Button" OnClick = "Button_Click" runat=server/>
<br><br>
<asp:TextBox id = "TextBox" Text = "Click the button" Width = "200" BackColor = "Cyan" runat=server/>
<br>
</form>
</body>
</html>