?
昨天下定決 心對上次做的布局編輯器控件加以改進,其中最主要變化的就是要完全使用ASP.NET AJAX!但是很遺憾,雖然耳聞已久,但目前對ASP.NET AJAX的熟悉程度實在令人汗顏,而且有一段時間沒有怎么關(guān)注了,以前學(xué)會的那點皮毛也忘得差不多了,不過即使從頭開始也沒什么大不了的。雖然決心很大, 不過剛拿起UpdatePanel它就給了我一個下馬威,實在有夠郁悶的!
就 是下面很簡單的一段代碼,意圖很簡單,動態(tài)創(chuàng)建一個UpdatePanel,然后在其中放置一個LinkButton!(為了做對比,我在 UpdatePanel外面也放置了一個LinkButton)按照以前的經(jīng)驗,這就是實現(xiàn)局部刷新所需的全部工作了,而且ASP.NET AJAX 1.0中,UpdatePanel的ChildrenAsTriggers屬性默認true,也就是說UpdatePanel中的LinkButton自 動成為觸發(fā)器。
?2 ? {
?3 ? ????protected?override? void ?OnInit(EventArgs?e)
?4 ? ????{
?5 ? ????????base.OnInit(e);
?6 ?
?7 ? ????????UpdatePanel?p1? = ? new ?UpdatePanel();
?8 ? ????????p1.ID? = ? " MyUpdatePanel " ;
?9 ?
10 ? ????????LinkButton?lbInside? = ? new ?LinkButton();
11 ? ????????lbInside.Text? = ? " Inside?updatepanel " ;
12 ? ????????p1.ContentTemplateContainer.Controls.Add(lbInside);
13 ? ???????? this .PlaceHolder1.Controls.Add(p1);
14 ?
15 ? ????????LinkButton?lbOutside? = ? new ?LinkButton();
16 ? ????????lbOutside.Text? = ? " Outside?updatepanel " ;
17 ? ???????? this .PlaceHolder1.Controls.Add(lbOutside);
18 ? ????}
19 ? }
可是運行結(jié)果卻讓我大跌眼鏡(雖然我不帶眼鏡,呵呵), 點擊“Inside updatepanel”并沒有像我想的那樣局部刷新,而是刷新了整個頁面,出現(xiàn)的瀏覽歷史記錄就是明證 !而點擊設(shè)計期添加的那個LinkButton則完全正常!

到了這里,出于對MS的一貫信任,我不禁懷疑起自己的智商來,那么一小段代碼居然會有問題,難道我年紀輕輕就老年癡呆了???天哪!我戰(zhàn)戰(zhàn)兢兢查看了一下頁面源碼:

嗯,細看之下果然有點區(qū)別,那些“ctlXXX”無疑是自動生成的ID,但是我怎么就沒看到對應(yīng)的id屬性呢?難道就是它們在搞鬼?反正死馬做活馬醫(yī),加上ID再說,再次運行,果然,一切搞定,哈哈~~~(旁白:果然是老年癡呆,至于笑成這樣嘛!!!)
?2 ? {
?3 ? ????protected?override? void ?OnInit(EventArgs?e)
?4 ? ????{
?5 ? ????????base.OnInit(e);
?6 ?
?7 ? ????????UpdatePanel?p1? = ? new ?UpdatePanel();
?8 ? ????????p1.ID? = ? " MyUpdatePanel " ;
?9 ?
10 ? ????????LinkButton?lbInside? = ? new ?LinkButton();
11 ? ???????? lbInside.ID? =?"lbInside" ;
12 ? ????????lbInside.Text? = ? " Inside?updatepanel " ;
13 ? ????????p1.ContentTemplateContainer.Controls.Add(lbInside);
14 ? ???????? this .PlaceHolder1.Controls.Add(p1);
15 ?
16 ? ????????LinkButton?lbOutside? = ? new ?LinkButton();
17 ? ????????lbOutside.Text? = ? " Outside?updatepanel " ;
18 ? ???????? this .PlaceHolder1.Controls.Add(lbOutside);
19 ? ????}
20 ? }
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
