ModalPopup’tan Gelen Geri Göndermeleri İşleme (VB)Handling Postbacks from a ModalPopup (VB)

Hristia WENZ tarafındanby Christian Wenz

Kodu indirin veya PDF 'yi indirinDownload Code or Download PDF

AJAX denetim araç setinde ModalPopup denetimi, istemci tarafı anlamını kullanarak kalıcı bir açılan pencere oluşturmanın basit bir yolunu sunar.The ModalPopup control in the AJAX Control Toolkit offers a simple way to create a modal popup using client-side means. Açılan pencere içinden bir geri gönderme oluşturulduğunda özel dikkatli olunmalıdır.Special care must be taken when a postback is created from within the popup.

Genel bakışOverview

AJAX denetim araç setinde ModalPopup denetimi, istemci tarafı anlamını kullanarak kalıcı bir açılan pencere oluşturmanın basit bir yolunu sunar.The ModalPopup control in the AJAX Control Toolkit offers a simple way to create a modal popup using client-side means. Açılan pencere içinden bir geri gönderme oluşturulduğunda özel dikkatli olunmalıdır.Special care must be taken when a postback is created from within the popup.

AdımlarSteps

ASP.NET AJAX ve Denetim araç seti işlevlerini etkinleştirmek için, ScriptManager denetimi sayfada herhangi bir yere yerleştirmeli (ancak <form> öğesi içinde):In order to activate the functionality of ASP.NET AJAX and the Control Toolkit, the ScriptManager control must be put anywhere on the page (but within the <form> element):

<asp:ScriptManager ID="asm" runat="server" />

Ardından, kalıcı açılan pencere olarak hizmet veren bir panel ekleyin.Next, add a panel which serves as the modal popup. Bu şekilde, Kullanıcı bir ad ve e-posta adresi girebilir.There, the user can enter a name and an email address. Açılan pencereyi kapatmak ve bilgileri kaydetmek için bir düğme kullanılır.A button is used to close the popup and save the information. OnClick özniteliğinin, bu düğmeye tıklandığında geri gönderme işleminin gerçekleşmesini sağlamak için ayarlandığını unutmayın:Note that the OnClick attribute is set so that a postback occurs when this button is clicked:

<asp:Panel ID="ModalPanel" runat="server" Width="500px">
 Name: <asp:TextBox ID="tbName" runat="server" /><br/>
 Email: <asp:TextBox ID="tbEmail" runat="server" /><br/>
 <asp:Button ID="OKButton" runat="server" Text="Save"OnClick="SaveData" />
</asp:Panel>

Sayfanın kendisi tam olarak aynı bilgiler için iki etiketten oluşur: ad ve e-posta adresi.The page itself consists of two labels for exactly the same information: name and email address. Kalıcı açılan pencereyi tetiklemek için bir düğme kullanılır:A button is used to trigger the modal popup:

<div>
 Contact Information:
 <asp:Label ID="lblName" runat="server" Text="AJAX Fanatic"/><br />
 <asp:Label ID="lblEmail" runat="server" Text="ajax@fanatic"/><br />
 <asp:Button ID="btn1" runat="server" Text="Edit"/>
</div>

Açılan pencerenin görünmesini sağlamak için ModalPopupExtender denetimini ekleyin.In order to make the popup appear, add the ModalPopupExtender control. PopupControlID özniteliğini bölmenin KIMLIĞINE ayarlayın ve düğmenin KIMLIĞINE TargetControlID:Set the PopupControlID attribute to the panel's ID and TargetControlID to the button's ID:

<ajaxToolkit:ModalPopupExtender ID="mpe" runat="server" TargetControlID="btn1" PopupControlID="ModalPanel" />

Artık, kalıcı açılan pencerenin içindeki Save düğmesine tıklandığında, sunucu tarafı SaveData() yöntemi yürütülür.Now whenever the Save button within the modal popup is clicked, the server-side SaveData() method is executed. Burada, girilen verileri bir veri deposuna kaydedebilirsiniz.There, you could save the entered data in a data store. Basitlik sağlamak için yeni veriler yalnızca etiketin çıktıdır:For the sake of simplicity, the new data is just output in the label:

Protected Sub SaveData(ByVal sender As Object, ByVal e As EventArgs)
 lblName.Text = HttpUtility.HtmlEncode(tbName.Text)
 lblEmail.Text = HttpUtility.HtmlEncode(tbEmail.Text)
End Sub

Ayrıca, kalıcı açılan pencerede bulunan TextBox denetimleri geçerli ad ve e-posta ile doldurulmalıdır.Also, the textbox controls within the modal popup should be filled with the current name and email. Ancak bu yalnızca geri gönderme gerçekleşmediğinde gereklidir.However this is only necessary when no postback occurs. Bir geri gönderme işlemi varsa, ASP.NET ViewState özelliği, metin kutularını uygun değerlerle otomatik olarak doldurur.If there is a postback, the ASP.NET viewstate feature will automatically fill the textboxes with the appropriate values.

Sub Page_Load()
 If Not Page.IsPostBack Then
 tbName.Text = lblName.Text
 tbEmail.Text = lblEmail.Text
 End If
End Sub

kalıcı açılan pencere geri göndermeye neden olurThe modal popup causes a postback

Kalıcı açılan pencere geri göndermeye neden olur (tam boyutlu görüntüyü görüntülemek Için tıklatın)The modal popup causes a postback (Click to view full-size image)