對於什麼MVC、WPF、WCF...之類的雖然多少知道一些,但總覺得沒什實感。
AJAX也是。
相信有碰過AJAX的都不陌生,不過對我很陌生,雖然我知道它在做什麼的,但是工作上沒用到,所以也不曾理會過(真不稱職)。
現在才去試著去瞭解它在VS上的開發,因此我很開心的打開VS2008,選了AJAX範本
然後你會發現它預設帶了這個東西
<asp:ScriptManager ID="ScriptManager1" runat="server" />微軟的解釋是:控制項可管理具有 AJAX 功能的 ASP.NET 網頁所適用的用戶端指令碼。依預設,ScriptManager 控制項會透過網頁對 Microsoft AJAX Library 註冊指令碼。這可讓用戶端指令碼使用類型系統延伸模組,以及支援部分頁面呈現與 Web 服務呼叫等功能。
http://msdn.microsoft.com/zh-tw/library/cc295440(v=Expression.40).aspx
總之就是要有它才會動就對了。
接著我想做類似這種東西的功能
http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/tabs/tabs.aspx
但是VS2008內建卻沒有?
GOD!只有這5個你也敢出來混。
原來還得自己去上面的網址抓套件.......
當我抓好並增加到我的組件後,多了非常多的套件,真是非常之感動。
結果當我簡單打好了基本的標籤語法後(我習慣都用打的)
<asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="1"> <asp:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1"> <HeaderTemplate>123</HeaderTemplate> <ContentTemplate>456</ContentTemplate> </asp:TabPanel> <asp:TabPanel ID="TabPanel2" runat="server" HeaderText="TabPanel2"> <HeaderTemplate>234</HeaderTemplate> <ContentTemplate>678</ContentTemplate> </asp:TabPanel> </asp:TabContainer>
依2008的運行方式來想,這種東西應該是不需要額外再去Bind它,所以我就很自然的Run下去
疑?
空白的?
WTF?
我做Ajax上傳時也不會這樣啊
https://sites.google.com/site/siggblog/sample/shangchuanjizidongfasongmail
當我右鍵下去發現資料都是存在的,但是style都是hidden,我還很天真的寫了script去指定它顯示.....結果不行。
於是我就TabContainer1.Visable=true;TabContainer1.DataBind();之類的蠢事。
結果當然也是不行。
於是我開始Google,但是完全沒有人有這種問題,而且每個人都是直接向我這樣打就能Run了,我說....是七月到了我見鬼嗎?難到就真這麼神奇?
於是我花了兩個小時在幹這鬼打牆的事,由於我個人認為這應該是件滿蠢的事,所以我也不打算問人(上網問)。
最後我終於GOO到了一個BLOG
http://www.zhangyongjun.com/BLOG/article.asp?id=6618
我原本以為這份文件對我沒什麼用處,就草草看完然後繼續找,但是我越找越覺得哪怪怪的,於是我又回頭重看一次,看到了一個重點。
如下圖
ToolkitScriptManager?
怎麼有種即視感?
想到沒?
這跟我一開始建好的PAGE裡的<asp:ScriptManager ID="ScriptManager1" runat="server" />不是很像嗎?
於是我先不管它這麼多,照著網頁上的做,我拉了一個ToolkitScriptManager出來
結果發生了
只能在此頁面加入一個 ScriptManager 的執行個體。
的錯誤。故得知ScriptManager一個頁面應該只能擁有一個,而且ToolkitScriptManager和ScriptManager是相同的東西。
於是我試著把ScriptManager給砍了,只留ToolkitScriptManager再試行一次。
喔喔喔喔!
喔喔喔喔!!
喔喔喔喔!!!
見證奇蹟的時刻到了。
果然是件很蠢的事情啊!
簡而言之
用AjaxControlToolkit就要用ToolkitScriptManager,至於ScriptManager是沒辦法使用的。
這叫人情何以堪
學我最近去上課的老師常說的一句話
這個時後我只有一個字可以形容:氣!