Bir ModalPopup’ı Konumlandırma (C#)

Hristia WENZ tarafından

Kodu indirin veya PDF 'yi indirin

AJAX denetim araç setinde ModalPopup denetimi, istemci tarafı anlamını kullanarak kalıcı bir açılan pencere oluşturmanın basit bir yolunu sunar. Ancak denetim, açılan pencereyi konumlandırmak için yerleşik bir işlevsellik sunmaz.

Genel bakış

AJAX denetim araç setinde ModalPopup denetimi, istemci tarafı anlamını kullanarak kalıcı bir açılan pencere oluşturmanın basit bir yolunu sunar. Ancak denetim, açılan pencereyi konumlandırmak için yerleşik bir işlevsellik sunmaz.

Adımlar

ASP.NET AJAX ve Denetim araç seti işlevlerini etkinleştirmek için ScriptManager. Denetim, sayfada herhangi bir yere yerleştirmeli (ancak <form> öğesi içinde):

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

Ardından, kalıcı açılan pencere olarak hizmet veren bir panel ekleyin. Açılan pencereyi kapatmak için bir düğme kullanılır:

<asp:Panel ID="ModalPanel" runat="server" Width="500px">
 ASP.NET AJAX is a free framework for quickly creating a new generation of more 
 efficient, more interactive and highly-personalized Web experiences that work 
 across all the most popular browsers.<br />
 <asp:Button ID="OKButton" runat="server" Text="Close" />
</asp:Panel>

Açılan pencere her gösterildiğinde sayfada belirli bir yerde konumlandırılmalıdır. Bu görev için, istemci tarafı bir JavaScript işlevi oluşturulur. Önce panele erişmeyi dener. Bu işlem başarılı olursa, panelin konumu CSS ve JavaScript kullanılarak ayarlanır (açılan menünün konumunu ' de değiştirin). Ancak ModalPopupExtender denetimi de açılan pencereyi konumlandırmaya çalışır. Bu nedenle, JavaScript kodu bir saniyede her onuncu açılan pencereyi sürekli konumlandırır.

<script type="text/javascript">
 var id = null;
 function movePanel() 
 {
 var pnl = $get("ModalPanel");
 if (pnl != null) 
 {
 pnl.style.left = "50px";
 pnl.style.top = "50px";
 id = setTimeout("movePanel();", 100);
 }
 }

Gördüğünüz gibi, JavaScript yönteminin dönüş setTimeout() değeri genel bir değişkende kaydedilir. Bu, clearTimeout() yöntemi kullanılarak, isteğe bağlı açılan pencerenin tekrarlanmış konumunu durdurmaya izin verir:

function stopMoving() 
 {
 clearTimeout(id);
 }
</script>

Artık her şey, her zaman uygun olduğunda tarayıcının bu işlevleri çağırmasını sağlamak için kullanılabilir. Düğme tıklandığında paneli tetikleyen movePanel() JavaScript işlevi çağrılmalıdır:

<div>
 <asp:Button ID="btn1" runat="server" Text="Launch Modal Popup" 
 OnClientClick="movePanel();" />
</div>

stopMoving() işlevi, açılan pencere kapatıldığında oynat ' a gelir ve bu, ModalPopupExtender denetiminde tetiklenebilir:

<ajaxToolkit:ModalPopupExtender ID="mpe" runat="server"
 TargetControlId="btn1" PopupControlID="ModalPanel" OkControlID="OKButton"
 OnOkScript="stopMoving();" />

, belirlenen konumda kalıcı açılan pencere görüntülenir

Belirlenen konumda kalıcı açılan pencere görünür (tam boyutlu görüntüyü görüntülemek Için tıklayın)