頁面中一個事件發生后,整個頁面都要刷新嗎?能否只刷新受影響的控件呢?


我用asp.net和c#畫了個地圖,頁面還有其他內容,第一個事件是用於畫地圖的,第二個事件是用於在label中顯示其他內容的,但是第二個事件發生后整個頁面都重新
load了一次,使得速度很慢(主要是畫圖的速度),可不可以第二個事件只刷新它控制的內容啊?

12 个解决方案

#1


關注刷新的問題

#2


等到IE7.0推出后再看看吧:)

#3


試試把畫圖的部分放在
if (!IsPostBack)
{
...
}
這里面,當頁面刷新返回時,就不會再執行畫圖的部分了。

#4


同意icyer()

#5


試着把地圖放在一個ascx中呢?

#6


(!IsPostBack)是對應哪個啊,很多控件都有的啊。
再說我能不能作成框架?asp.net做框架會不會很麻煩的?

#7


在Page_Load()中:
if (!IsPostBack)
{
/*畫圖程序*/
}

#8


我詳細說說我的程序:
有兩個RadioButton,沒有提交按鈕的,任意選擇一個后立即畫出圖來。
另外有幾個button,點擊后顯示有關數據,但不想影響到畫圖。這樣可以
在Page_Load()中寫
if (!IsPostBack)
{
/*畫圖程序*/
}的嗎?
我的畫圖是靠radio_changed(sender as object,e as eventargs)來畫的。

#9


(!IsPostBack)是對應哪個啊,很多控件都有的啊。
再說我能不能作成框架?asp.net做框架會不會很麻煩的?


---和以前一樣,不麻煩
也可以用iframe,位置比較好定

#10


建議多研究事件執行機制,順序 

#11


if (!IsPostBack)
{
   
}
是頁面第一次打開時,才執行的,頁面有回傳時為true.IsPostBack對應的是Page,其他控件有的只是AutoPostBack屬性.

通過看你的事件觸發過程.簡單用(!IsPostBack)是不太合適的,因為當頁面打開時,你還沒有要畫圖,當觸發Radiobutton時,就有了回傳,而此時卻是要觸發畫圖事件.建議在定義一個全局的bool變量,bool isDraw=false.當圖畫完后(即事件radio_changed觸發后),在radio_changed將isdraw=true;
if (IsPostBack==true)
{
  if (isDraw=false)
    radio_changed;
}

try

我只是這么想的

#12


好的,謝謝各位的幫忙!!

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com