簡體   English   中英

ASP.NET AJAX彈出頁面作為模式窗口

[英]ASP.NET AJAX popup a page as a modal window

我想使用.aspx頁的模式彈出窗口將數據添加到數據庫。

所以我有一個網格,上面有一些雇員的SQL表數據。 我想在此頁面上的某個位置有一個按鈕或鏈接,以使用戶可以將記錄添加到數據庫,然后刷新網格以顯示新數據。

我有一個addEmployee.aspx,我想在模式窗口中彈出該窗口(並使底層頁面變暗,就像我在某些站點上看到的那樣),該窗口允許用戶輸入數據並保存到addEmployee.aspx中的數據庫中。 此頁面中封裝了用於此工作的所有sql和驗證邏輯。 添加完成后,我想提醒用戶它去了(可能最好是在關閉彈出窗口並在主頁上顯示一條消息之后,我也想從數據庫中刷新數據網格信息,以便它可以反映新的記錄已添加。

有人可以指出我要獲得此類功能的方向,而無需花費數周的時間來獲得它。

如果您有更好的解決方案,我全都可以!!!

謝謝

如果可以將addEmployee.aspx功能封裝到用戶控件中,則可以將此用戶控件(addEmployee.ascx)添加到帶有網格的頁面中(例如viewEmployee.aspx)

然后,使用模式彈出擴展程序(如果使用的是ajax控件工具包),可以顯示此addEmployee.ascx控件,其中用戶具有保存按鈕以及用於添加雇員的相應邏輯。

同樣,如果您使用的是updatepanels(再次使用ajax控件工具包),則可以執行listofEmployeeUpdatePanel.Update()來刷新網格中的項目列表。

這就是我當前在當前應用程序中實現非常相似的用例的方式。

這種方法的一個缺點是:addEmployee.ascx用戶控件是原始頁面的一部分,並且無論是否使用它都會增加大小。

在您的情況下,您可以使用jquery facebox插件顯示模式彈出窗口,也可以引用非常靈活且易於使用的JavaScript原型。

對於Facebox,Facebox允許將iframe顯示為模式彈出窗口。 因此您可以將鏈接放入iframe。 替代“ facebox”的是帶有漂亮gui的“ fancybox”。 它很棒,因為我以前用過。

希望這會幫助你。

您可以將IFrame放在模式中,指向addEmployee.aspx。 然后,在主頁上添加一個隱藏按鈕,例如:

<div style="visibility: hidden; display: none;">
    <asp:Button ID="btnHidden" runat="server" />
</div>

將Cick甚至添加到隱藏的按鈕,該按鈕應包含更新網格的代碼:

protected void btnHidden_Click(object sender, EventArgs e)
{
  //Hidden button was clicked.  Update grid.
}

然后,在addEmployee.aspx中的“添加”單擊事件上,添加代碼以告知主頁提交並更新網格:

  private void SubmitParentPage()
    {
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "submitHiddenButton", "window.parent.submitHiddenButton();", true);
    }

這是在主頁上調用的javascript函數:

function submitHiddenButton() {
    var btn = $get('<%= btnHidden.ClientID %>');
    btn.click();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM