。
控件的屬性:-頁面上任何一處發生的回發操作都會產生頁局部更新;-只在特定的情況下才產頁面的回發,如執行控件的()方法或在指定的觸發器的操作下。
控件的屬性:指示內部控件引起的回發是否產生當前控件的局部更新。如果設為的話,那局性必須設為True,否則運行出錯。
一、內部的控件引起的回發,來更新當前內部的控件內容:
1.向頁面中加入、控件和一個Label控件()。
2.在中加入一個、一個Label()。
3.雙擊在事件處理程序中寫入下列代碼:.Text = .Now.();
4.在事件中寫入下列代碼:.Text = .Now.();
5.運行頁面,發現每次點擊按鈕都會產生異步局步刷新,只有的內容發生更改,頁面上的時間沒有發生更改。
代碼如下:
void ( , e)
{
.Text = .Now.(); ;
}
void ( , e)
{
.Text = .Now.();
}
注意:此時的的ng屬性應設為true。的屬性應設為。屬性應設為true。
二、控件外部的控件引起的回發,來異步更新內部的內容:
雖然上面的方式能夠很簡單地實現異步局部更新的功能,但就性能方面考慮,我們應當只將數據確實會發生變化的控件擺放在中,這就可能會出現引起回發的控件不在內的情況。
有兩種方式實現這種效果:
a.在方法中用.()來注冊一下要實現異步更新的控件。
b.用觸發器來實現。
1、.()注冊的控件可以實現對所有的控件的異步更新。
如:.(this.);實現對的注 冊,那此時的回發就變成一個異步回發(頁面不會刷新),它會導致頁面上所有的的內容的更新。
注意:此時的的ng屬性應設為true。的屬性應設為。
2、.()注冊的控件可以實現針對特定控件的異步更新。
a.把頁面上所有的控件的設為。
b..(this.);實現對的注冊。
c.在控件的Click事件中后面加入后面的代碼:.();
這樣按鈕只對控件實現的異步的局部刷新。
注意:這里的的屬性要設為,如果還是的話,會出現所有的都刷新的效果。
3、觸發器
如果頁面上有多個控件,如果要實現外部的控件的回發引發指定的更新的話,那應當為要實現刷新的控件建立一個觸發器。
a.選中要進行局部更新的控件。
b.在其屬性頁中點擊集合屬性右邊的小按鈕。
c.在彈出的對話框中,的成員列表中添加一個s成員。
d.指定s成員的和母版頁中使用導航控件要求,即引發異步回送的控件的ID和該控件的事件。
完成以上步驟后,切換到HTML頁面就會出現下列代碼:
這里需要大家注意的是:
把所有的控件的設為"",這樣才能夠針對建有相關觸發器的更新。
一個上可以建有多個觸發器,實現在不同的情況下對該控件內容的更新。
三、兩個控件,其中一個內的控件引發兩個控件的同時刷新。
a.在頁面上放入兩個和一個控件。
b.在中加入一個標簽、一個按鈕 ,在中加入一個標簽。
c.將和兩個控件的的屬性設為""
c.在的Click事件中加入下面的代碼:
void ( , e)
{
.Text = .Now.();
.Text = .Now.();
}
四、兩個控件,其中一個內的控件引發當前的控件的刷新,而另一個不刷新。
a.步驟和上面的(三)一樣
b.要把和兩個控件的屬性設為
五、兩個控件,其中一個內的控件引發另一個控件的刷新,而本身不刷新。
a.步驟和上面的(四)一樣
b.把和的屬性設為false
c.在控件中加入一個觸發器,觸發源設到控件內的的Click事件上。
在開發過程中難免會用到控件的一些復雜的使用。如:控件的嵌套、在母版頁中使用、在用戶控件中使用以及在中使用等。
其實這些操作也免不了對控件的屬性、屬性以及觸發器的使用,下面是系統地說明。
一、兩個嵌套的控件,外部的內的控件回發引發二者同時更新
在頁面上放一個和控件(),在中放入一個標簽控件 ()、一個按鈕()和另一個控件(),在控件中放一 個標簽控件lblIn。
在控件中的Click事件中加入下面的代碼:
void ( , e)
{
lblIn.Text = .Now.();
.Text = .Now.();
}
要實現外部內控件的回發引起內部和外部兩個控件的同時刷新的話,需要把兩個控件的 都設為,這樣外部內的控件回發會自動引起內部控件的刷新。
注意:
外 部控件的屬性要設為True,兩個控件的要都設為 ,如果設為的話也會出現兩個同時刷新的效果,但樣這會導致頁面上其它的 控件也發生刷新。
二、兩個嵌套的控件,內部的內的控件回發引發二者同時更新
在頁面上放一個和控件(),在中放入一個標簽控件 ()和另一個控件(),在控件中放一個標簽控件lblIn和一個按 鈕()。
在按鈕的Click事件中和(一)中的一樣。
注意:
把兩個控件的屬性設為,要把內部控件設為 True。但這樣內部內的控件只引發自身的刷新,不會引發外部的控件的刷新,不會刷新外部的 控件,因此我們還需要為外部控件加入一個觸發器,觸發源指定為控件的Click事件上。
三、兩個嵌套的控件,外部的內的控件回發只引發內部控件的更新
在頁面上放一個和控件(),在中放入一個標簽控件 ()、一個按鈕()和另一個控件(),在控件中放一 個標簽控件lblIn。
在按鈕的Click事件中和(一)中的一樣。
注意:
要把兩個控件的設為,把外部控件的 設為false。這樣兩個控件都不會刷新,所以還要為內部的控件建立觸 發器母版頁中使用導航控件要求,觸發源指向外部中的的的Click事件上。
四、母版頁中使用控件
如果將控件添加在母版頁上的話,那么各內容頁面就沒必要再添加控件了,只需添加控件就可以了,因為母版頁和內容頁面將來生成的是一個頁面的實例,而在一個頁面上是不允許同時存在兩個控件的。
如果控件沒有添加在母版頁上的話,那只能把控件添加在其中一個內容頁面里。不要向每一個內容頁面中添加控件。
1、內容頁面中的內的控件引起回發,只更新當前內容頁面的內容。
此時按鈕分別在各自的控件內。
將兩個內容頁面內的兩個控件的設為,設為True。
在按鈕的Click事件中和(一)中的一樣。
這樣就出現各內容頁的內的按鈕只對當前內容頁起作用。
2、在母版頁中的按鈕引起回發,更新指定內容頁的信息。
此時有兩個按鈕:在母版頁中,在內容頁面1中。
當點擊時,異步更新兩個內容頁面的信息。當點擊時,異步更新母版面中的中的信息。
母版頁HTML代碼如下:
母版頁3
#####################################################################
內容頁面的HTML代碼如下:
母版頁的CS代碼如下:
void ( , e)
{
.(this.);
}
void ( , e)
{
Label lbl1 = (Label)this..("");
lbl1.Text = .Now.();
Label lbl2 = (Label)this..("");
lbl2.Text = .Now.();
}
{
get
{
lbl.Text;
}
set
{
lbl.Text = value;
}
}
內容頁面的CS代碼如下:
void ( , e)
{
.Text = .;
. = "'s ";
(().("")).(); ;
}
五、用戶控件中使用控件
如果父頁面中存在控件,那用戶控件的頁面中不應再放入控件了,只在用戶控件中加入。
其控件的回發與更新規律與使用方式與母版頁一樣。