Sys.WebForms.InitializeRequestEventArgs-Klasse
Aktualisiert: November 2007
Wird vom initializeRequest-Ereignis der Sys.WebForms.PageRequestManager-Klasse verwendet, um Argumentinformationen an Ereignishandler zu übergeben.
Namespace:Sys.WebForms
Vererbung:Sys.CancelEventArgs
new Sys.WebForms.InitializeRequestEventArgs();
Konstruktoren
Name |
Beschreibung |
---|---|
Initialisiert eine neue Instanz der InitializeRequestEventArgs-Klasse. |
Member
Name |
Beschreibung |
---|---|
Sys.WebForms.InitializeRequestEventArgs postBackElement-Eigenschaft |
Ruft das Postbackelement ab, durch das das asynchrone Postback initiiert wurde. |
Ruft das Anforderungsobjekt ab, das das aktuelle Postback darstellt. |
Tipp
Diese Klasse enthält private Member, die die Clientskriptinfrastruktur unterstützen und nicht für die direkte Verwendung in Code vorgesehen sind. Namen privater Member beginnen mit einem Unterstrich ( _ ).
Hinweise
Ereignishandler können mit der request-Eigenschaft auf das Anforderungsobjekt zugreifen und mit der postBackElement-Eigenschaft das Element ermitteln, durch das das Postback verursacht wurde.
Das initializeRequest-Ereignis der PageRequestManager-Klasse wird ausgelöst, bevor die Verarbeitung der asynchronen Anforderung beginnt.
Beispiel
Im folgenden Beispiel wird gezeigt, wie das initializeRequest-Ereignis verwendet wird, um den Abbruch eines asynchronen Postbacks zu ermöglichen. Durch Skript im initializeRequest-Ereignishandler wird ermittelt, ob derzeit ein asynchrones Postback ausgeführt wird. Dazu wird die isInAsyncPostBack-Eigenschaft der PageRequestManager-Klasse verwendet. Wenn ein Postback ausgeführt wird, wird die postBackElement-Eigenschaft verwendet, um die ID des Elements zu ermitteln, das das Postback verursacht hat. Wenn die ID der ID einer Schaltfläche entspricht, durch die das Postback abgebrochen wird, wird die abortPostBack-Methode der PageRequestManager-Klasse aufgerufen. Andernfalls wird die aktuelle Anforderung über die cancel-Eigenschaft der CancelEventArgs Klasse abgebrochen.
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub ButtonClick_Handler(ByVal sender As Object, ByVal e As System.EventArgs)
System.Threading.Thread.Sleep(3000)
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager initializeRequest Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
div.UpdatePanelStyle{
width: 300px;
height: 300px;
}
div.AlertStyle {
font-size: smaller;
background-color: #FFC080;
height: 20px;
visibility: hidden;
}
div.Container {
display: inline;
float: left;
width: 330px;
height: 300px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript" language="javascript">
var divElem = 'AlertDiv';
var messageElem = 'AlertMessage';
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus);
function CheckStatus(sender, args)
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'CancelRefresh') {
prm.abortPostBack();
}
else if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
args.set_cancel(true);
ActivateAlertDiv('visible', 'Still working on previous request.');
}
else if (!prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
ActivateAlertDiv('visible', 'Processing....');
}
}
function ActivateAlertDiv(visString, msg)
{
var adiv = $get(divElem);
var aspan = $get(messageElem);
adiv.style.visibility = visString;
aspan.innerHTML = msg;
}
</script>
<div class="Container" >
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server" >
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" GroupingText="UpdatePanel"
CssClass="UpdatePanelStyle">
Last update:
<%=DateTime.Now.ToString() %>.
<asp:Button runat="server" ID="RefreshButton" Text="Refresh"
OnClick="ButtonClick_Handler" />
<div id="AlertDiv" class="AlertStyle">
<span id="AlertMessage"></span>
<asp:LinkButton ID="CancelRefresh" runat="server">cancel</asp:LinkButton>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void ButtonClick_Handler(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(3000);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager initializeRequest Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
div.UpdatePanelStyle{
width: 300px;
height: 300px;
}
div.AlertStyle {
font-size: smaller;
background-color: #FFC080;
height: 20px;
visibility: hidden;
}
div.Container {
display: inline;
float: left;
width: 330px;
height: 300px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript" language="javascript">
var divElem = 'AlertDiv';
var messageElem = 'AlertMessage';
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus);
function CheckStatus(sender, args)
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'CancelRefresh') {
prm.abortPostBack();
}
else if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
args.set_cancel(true);
ActivateAlertDiv('visible', 'Still working on previous request.');
}
else if (!prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
ActivateAlertDiv('visible', 'Processing....');
}
}
function ActivateAlertDiv(visString, msg)
{
var adiv = $get(divElem);
var aspan = $get(messageElem);
adiv.style.visibility = visString;
aspan.innerHTML = msg;
}
</script>
<div class="Container" >
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server" >
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" GroupingText="UpdatePanel"
CssClass="UpdatePanelStyle">
Last update:
<%=DateTime.Now.ToString() %>.
<asp:Button runat="server" ID="RefreshButton" Text="Refresh"
OnClick="ButtonClick_Handler" />
<div id="AlertDiv" class="AlertStyle">
<span id="AlertMessage"></span>
<asp:LinkButton ID="CancelRefresh" runat="server">cancel</asp:LinkButton>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</form>
</body>
</html>