具體我們如何?檔案的非同步重新整理,目前網上已經有了很多文章來解決這個問題,但是會用到大量的javascript,由於本人編碼功力尚淺,所以之今沒有高清其中的所以然,但是在解決的方案中他們貌似都用到了iframe,這讓我茅塞頓開,所以我就說說用這個處理重新整理的思路。
首先一個實際的頁面中往往是會有較多的內容,我們暫時把它分為A,B兩個地區,A地區是內容地區,我們可以用updatepanel來實現非同步重新整理,B地區是上傳地區,我們用div已經ifame佔位,其中上傳的具體功能實現我們可以放到C頁面中,這樣當點擊按鈕重新整理B地區的時候,我們可以向C頁面傳值來更新裡面的內容,同樣當我們點擊按鈕刪除或者儲存內容時,也可以擷取C頁面中的內容,這樣就基本上滿足了無重新整理的感覺。
其實這種方式並不能稱之為非同步重新整理,因為我們只是用iframe來實現頁面的局部重新整理從而滿足一種無重新整理的感覺而已。
如果這樣處理的話,asp.net頁面與iframe之間的傳值就會成為另一個問題,其實這個問題如果你知道,就會比較簡單,但是不知道的話,就有點無從下手。
網上可能也提供了很多方案處理傳值,我使用的是使用javascript來擷取控制項從而取到他裡面所包含的值。
這個是擷取iframe f1,以及頁面C中的 img控制項
var objFrame = document.getElementById("f1");
var objPicture = objFrame.contentWindow.document.getElementById("imgPicture");
當然你也可以在頁面C中去擷取父頁面的控制項,從而擷取值
var objHid = this.parent.document.getElementById("")
這個是包含ifrmae的div
<div id="iconpicture">
<iframe id="f1" style="width: 300px; height: 300px" src="UploadImage.aspx" scrolling="no"
frameborder="0" border="0" frameborder="no"></iframe>
</div>
這個實現方式我已經在項目中成功的使用了,其實如果這樣處理主要的痛點已經不再於具體功能的實現,而在於頁面的布局在多瀏覽器下的適應了。當然我提供的這些javascript 是滿足多瀏覽器的。