PostBackTrigger PostBackTrigger PostBackTrigger PostBackTrigger Class

定義

UpdatePanel コントロール内のコントロールを、ポストバック コントロールとして定義します。Defines a control inside a UpdatePanel control as a postback control.

public ref class PostBackTrigger : System::Web::UI::UpdatePanelControlTrigger
public class PostBackTrigger : System.Web.UI.UpdatePanelControlTrigger
type PostBackTrigger = class
    inherit UpdatePanelControlTrigger
Public Class PostBackTrigger
Inherits UpdatePanelControlTrigger
継承

次の例は、 PostBackTrigger UpdatePanelコントロールのコントロールを宣言によって定義する方法を示しています。The following example shows how to declaratively define a PostBackTrigger control for an UpdatePanel control. パネルでは、 FileUploadコントロールを使用して、ユーザーがファイルをアップロードできます。In the panel, a FileUpload control enables users to upload a file. ユーザーは、アップロードするファイルが存在するかどうかを最初に確認する必要があります。Users must first check whether the file to upload exists. ファイルButton名を確認するためにイベントハンドラーを呼び出すコントロールは、非同期ポストバックを発生させます。The Button control that calls the event handler to check the file name causes an asynchronous postback. ただし、ファイルを非同期にアップロードすることはできないPostBackTriggerため、ファイルをアップロードするコントロールはとして登録されます。ButtonHowever, the Button control that uploads the file is registered as a PostBackTrigger, because files cannot be uploaded asynchronously.

<%@ 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">

    private string saveDir = @"Uploads\";
    
    protected void UploadButton_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile && FileUpload1.FileBytes.Length < 10000 &&
            !CheckForFileName())
        {
            string savePath = Request.PhysicalApplicationPath + saveDir +
                Server.HtmlEncode(FileName.Text);
            //Remove comment from the next line to upload file.
            //FileUpload1.SaveAs(savePath);
            UploadStatusLabel.Text = "The file was processed successfully.";
        }
        else
        {
            UploadStatusLabel.Text = "You did not specify a file to upload, or a file name, or the file was too large. Please try again.";
        }
    }

    protected void CheckButton_Click(object sender, EventArgs e)
    {
        if (FileName.Text.Length > 0)
        {
            string s = CheckForFileName() ? "exists already." : "does not exist.";
            UploadStatusLabel.Text = "The file name choosen " + s;
        }
        else
        {
            UploadStatusLabel.Text = "Specify a file name to check.";
        }
    }
    private Boolean CheckForFileName()
    {
        System.IO.FileInfo fi = new System.IO.FileInfo(Request.PhysicalApplicationPath + 
            saveDir + Server.HtmlEncode(FileName.Text));
            return fi.Exists;
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>PostBackTrigger Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    The upload button is defined as a PostBackTrigger.<br/>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
    <fieldset>
    <legend>FileUpload in an UpdatePanel</legend>
       First, enter a file name to upload your file to: 
       <asp:TextBox ID="FileName" runat="server" />
       <asp:Button ID="CheckButton" Text="Check" runat="server" OnClick="CheckButton_Click" />
       <br />
       Then, browse and find the file to upload:
       <asp:FileUpload id="FileUpload1"                 
           runat="server">
       </asp:FileUpload>
       <br />
       <asp:Button id="UploadButton" 
           Text="Upload file"
           OnClick="UploadButton_Click"
           runat="server">
       </asp:Button>    
       <br />
       <asp:Label id="UploadStatusLabel"
           runat="server" style="color:red;">
       </asp:Label>           
    </fieldset>
    </ContentTemplate>
    <Triggers>
    <asp:PostBackTrigger ControlID="UploadButton" />
    </Triggers>
    </asp:UpdatePanel>
    </div>
    </form>
</body>
</html>
<%@ 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">

    Private saveDir As String = "Uploads\\"

    Protected Sub UploadButton_Click(ByVal sender As Object, ByVal e As EventArgs)
        
        If (FileUpload1.HasFile AndAlso FileUpload1.FileBytes.Length < 10000 AndAlso _
           Not (CheckForFileName())) Then
            Dim savePath As String = Request.PhysicalApplicationPath & saveDir & _
               Server.HtmlEncode(FileName.Text)
            'Remove comment from the next line to upload file.
            'FileUpload1.SaveAs(savePath)
            UploadStatusLabel.Text = "The file was processed successfully."
        Else
            UploadStatusLabel.Text = "You did not specify a file to upload, or a file name, or the file was too large. Please try again."
        End If
        
    End Sub

    Protected Sub CheckButton_Click(ByVal sender As Object, ByVal e As EventArgs)
        If (FileName.Text.Length > 0) Then
            Dim s As String
            If (CheckForFileName()) Then
                s = "exists already."
            Else
                s = "does not exist."
            End If
            UploadStatusLabel.Text = "The file name choosen " & s
        Else
            UploadStatusLabel.Text = "Specify a file name to check."
        End If
    End Sub

    Private Function CheckForFileName() As Boolean
        Dim fi As New System.IO.FileInfo(Request.PhysicalApplicationPath & _
           saveDir & Server.HtmlEncode(FileName.Text))
        Return fi.Exists
    End Function

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>PostBackTrigger Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    The upload button is defined as a PostBackTrigger.<br/>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
    <fieldset>
    <legend>FileUpload in an UpdatePanel</legend>
       First, enter a file name to upload your file to: 
       <asp:TextBox ID="FileName" runat="server" />
       <asp:Button ID="CheckButton" Text="Check" runat="server" OnClick="CheckButton_Click" />
       <br />
       Then, browse and find the file to upload:
       <asp:FileUpload id="FileUpload1"                 
           runat="server">
       </asp:FileUpload>
       <br />
       <asp:Button id="UploadButton" 
           Text="Upload file"
           OnClick="UploadButton_Click"
           runat="server">
       </asp:Button>    
       <br />
       <asp:Label id="UploadStatusLabel"
           runat="server" style="color:red;">
       </asp:Label>           
    </fieldset>
    </ContentTemplate>
    <Triggers>
    <asp:PostBackTrigger ControlID="UploadButton" />
    </Triggers>
    </asp:UpdatePanel>
    </div>
    </form>
</body>
</html>

注釈

コントロールをPostBackTrigger使用してUpdatePanel内のコントロールを有効にし、非同期ポストバックを実行する代わりに、ポストバックを発生させます。Use the PostBackTrigger control to enable controls inside an UpdatePanel to cause a postback instead of performing an asynchronous postback.

コントロールのメソッドを使用してRegisterPostBackControl 、ポストバックコントロールをプログラムで登録します。 ScriptManagerUse the RegisterPostBackControl method of the ScriptManager control to programmatically register a postback control. その後、トリガーコントロールUpdateがポストバックUpdatePanelを実行するときに、コントロールのメソッドを呼び出すことができます。You can then call the Update method of the UpdatePanel control when the trigger control performs a postback.

注意

プログラムにPostBackTriggerよるコントロールの追加はサポートされていません。Programmatically adding PostBackTrigger controls is not supported.

コントロールがとPostBackTrigger AsyncPostBackTriggerの両方のコントロールとして設定されている場合は、例外がスローされます。If a control is set as both a PostBackTrigger and AsyncPostBackTrigger control, an exception is thrown.

コンストラクター

PostBackTrigger() PostBackTrigger() PostBackTrigger() PostBackTrigger()

PostBackTrigger クラスの新しいインスタンスを初期化します。Initializes a new instance of the PostBackTrigger class.

プロパティ

ControlID ControlID ControlID ControlID

PostBackTrigger コントロールの UpdatePanel コントロールであるコントロールの名前を取得または設定します。Gets or sets the name of the control that is an PostBackTrigger control for an UpdatePanel control.

Owner Owner Owner Owner

UpdatePanel が対象とする UpdatePanelTrigger コントロールへの参照を取得します。Gets a reference to the UpdatePanel control that the UpdatePanelTrigger targets.

(Inherited from UpdatePanelTrigger)

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
FindTargetControl(Boolean) FindTargetControl(Boolean) FindTargetControl(Boolean) FindTargetControl(Boolean)

ControlID プロパティで指定されたコントロールを検索します。Searches for the control specified in the ControlID property.

(Inherited from UpdatePanelControlTrigger)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
HasTriggered() HasTriggered() HasTriggered() HasTriggered()

トリガーがアクティブにされたかどうかを示す値を返します。Returns a value that indicates whether the trigger was activated.

Initialize() Initialize() Initialize() Initialize()

PostBackTrigger オブジェクトを初期化します。Initializes the PostBackTrigger object.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在の PostBackTrigger オブジェクトを表す文字列を返します。Returns a string that represents the current PostBackTrigger object.

適用対象

こちらもご覧ください