問題說明:
當我們使用了無接縫傳值撰寫模式,完成Master/Detail的編修資料後,大部份的情況都需要重新整理來源頁的頁面,才能立即顯示修正後的資料。在這種情況下要如何處理?
可能方法包含:
1.使用window.opener.location.reload();
2.呼叫來源頁的重整功能。
這兩個方法中,window.opener.location.reload();會產生是否要重整的確認視窗,而且整個網頁重新進入一次,使用上比較不經濟。第二個方法可以配合AJAX把握重點,只整理需要的頁面。
個人習慣使用第二種方法。
我的作法:
1.在來源頁上配置一個ImageButton的Control。語法如下:
<asp:imagebutton id="refreshBU" alternatetext="頁面重整" imageurl="~/Images/refresh.png" oncommand="refreshBU_Command" runat="server">
2.加入一個doRefresh()的javascript function(),語法如下:
function doRefresh() { doClickId("<%=refreshBU.ClientID %>"); }
doClickId()在ASP.NET無接縫傳值撰寫模式中已建立。
3.撰寫refreshBU_Command事件處理機制,可能是重新Binding GridView。
4.彈出的頁面中加入編修或處理結束後來源頁的功能呼叫。語法如下:
<script type="text/javascript">
function confirmSave(){
alert('回應資料已存檔,頁面即將關閉!');
window.opener.doRefresh();
window.open('', '_parent', '');
window.close();
}
</script>
1 則留言:
cooL ^.^
張貼留言