終於開始寫B/S的程式。
今天遇到了一個問題, 如何處理模態對話方塊。具體的要求是:在選擇頁面上的“添加”按鈕,彈出模態對話方塊,在對話方塊中添加記錄後,選擇“確定”按鈕,關閉對話方塊,更新首頁面表格的資料。
網上關於模態對話方塊的討論有很多,試了一天,發現一個比較好的解決方案:
1、顯示對話方塊:
在jscript指令檔中加入:
function OpenEditWin(frmWin,width,height)
{
var me;
// 把父頁面視窗對象當作參數傳遞到對話方塊中,以便對話方塊操縱父頁自動重新整理。
me = window;
// 顯示對話方塊。
window.showModalDialog(frmWin,me,'dialogWidth='+width +'px;dialogHeight='+height+'px;help:no;status:no')
}
在C#中調用 :
cmdAdd.Attributes.Add("onclick","javascript:OpenEditWin('" + Session["showForm"] + "',540,400)");
很多方法是用 Response.Write或者RegisterStartupScript 來實現,但是都存在問題,如顯示對話方塊時頁面是空白、重新整理頁面的時候彈出對話方塊等。
在對話方塊中加入:
function onsubmit() // 強制本視窗提交
{
document.Form1.target="_self";
}
2、關閉對話方塊
Response.Write("<script language='javascript'>");
Response.Write("window.close()");
Response.Write("</script>");
3、對話方塊關閉後,執行更新操作
在對話方塊的關閉事件中加入:
Response.Write("<script language='javascript'>");
Response.Write("window.close()");
Response.Write("</script>");
4、更新首頁面中的表格式資料。
在“添加”按鈕的處理方法中,添加表格更新的代碼。