topcat姍舞之間的極度凝聚

分享...是知識累積的開始....(Microsoft ASP/ASP.NET MVP)


My Links

Blog Stats

News

搬家公告:
未來小喵的文章會以點部落為主。
http://www.dotblogs.com.tw/topcat/
小鋪也會同步貼過來。不過在排版上能會比較沒有兼顧到。歡迎舊雨新知多多支持。 有與小喵交換網址或者訂閱的人,也建議連到那邊去。



目前線上人數:

隨筆分類

每月文章

影像集

其他部落格

工具網站

技術論壇

線上教學

語言學習

雖然ASP.NET 2.0已經內建了CallBack的機制,但是設計起來其實還有些麻煩

在網站上看到其他的大大們在玩MagicAjax.NET,聽說能夠在不改寫原本的寫法下,就能夠使用Ajax的好處,這讓小喵很好奇,不過小喵稍微搜尋了一下,卻沒有詳細的說明怎麼起頭,所以小喵把小喵的初體驗過程分享給各位網友

首先要先下載MagicAjax.NET,相關的檔案可從官方網站下載,網址如下:

http://www.magicajax.net/

下載好後,解開後會有許多的檔案,其中最最重要的,就是BIN中的【MagicAjax.dll】

接著可以開啟已經開好的站台,或者新增一個新的站台,開好後,先把Bin以及內部的MagicAjax.dll複製到您的專案中

MagicAjax01

接著,就是開始把修改Web.Config的內容

先是再一開頭的地方(<configuration>後)加入以下的東西

再來是在<pages>中加入以下這個語法

接著則是在</system.web>之前放以下這些語法

以上加入這些語法就設定好了Web.config了
由於是初體驗,小喵直接參考解壓縮後的範例的內容修改的,還沒有詳細的去研究每個語法的意義與用途,有些語法可能可以不需要,這些過陣子小喵研究過後再向大家報告

接著就來試試看他的威力囉

接著在default.aspx來試試看如何設計,為了要比較出PostBack的方式以及使用MagicAjax的方式,所以把相同的功能分別設計在同一個畫面中,而兩者在畫面上安排時,唯一的不同在於,使用MagicAjax的方式,需要把控制項放在<ajax:AjaxPanel runat="Server"></ajax:AjaxPanel>之間,請參考以下的畫面原始碼

接著是兩者的CodeFile中的內容

各位看官可以看到兩者的程式碼是一模一樣的,卻可以達到Ajax的CallBack方式

以上是小喵對MagicAjax.NET的初體驗
使用起來真的非常方便
他的原理是透過MagicAjax以及Client端的Script來攔截.NET的PostBack的語法,可以不改寫法的方式直接達到相同的效果。

初體驗的分享就先到這邊囉。

^_^

 

posted on Thursday, July 06, 2006 11:09 PM

Feedback

# re: MagicAjax.Net初體驗(設定,試用) 7/14/2006 5:27 PM KKKLYNN

謝謝您
總算把MagicAjax弄起來
網頁不再閃一閃
真的很感謝
因為我是寫PC程式的
以前根本沒摸過WEB
加上是半路出家(不是當和尚)
所以很多觀念都不通
都是東湊西弄的
所幸一路上,資源不斷
尤其是MagicAjax此段說明
再次感謝
期待有更進一步說明



# re: MagicAjax.Net初體驗(設定,試用) 9/8/2006 5:55 PM 遊民

能否請問一下!
使用MagicAjax的AjaxPanel後還能用Literal去組合JavaScript並讓它執行嗎?


# re: MagicAjax.Net初體驗(設定,試用) 10/17/2006 11:09 AM kevin

谢谢你.我用了.很好.
但是有个问题.就是刷新页面时,有个"loading..."字样,请问该如何隐藏它.谢谢.


# re: MagicAjax.Net初體驗(設定,試用) 10/19/2006 12:47 PM andy

你好,我依照上面步驟去做 可是 LAbel2.text 的時間還是不會動一定要POSTBACK 才行呢,我再從做一次還是不行,我是使用 WEB FORM
有差嗎 ?



# re: MagicAjax.Net初體驗(設定,試用) 10/29/2006 9:00 PM Fion

請問C#如何寫??


# re: MagicAjax.Net初體驗(設定,試用) 11/21/2006 4:27 PM Jon

如果放在IIS上面,好像不能用ㄟ!怪怪的


# re: MagicAjax.Net初體驗(設定,試用) 12/11/2006 9:47 AM 窃听器

OK~


# re: MagicAjax.Net初體驗(設定,試用) 12/14/2006 4:24 PM 硬盘数据恢复

不错~


# re: MagicAjax.Net初體驗(設定,試用) 12/27/2006 12:00 AM 彰仔

跟著實際來跑,有MagicAjax的效果出來了,但是它的後續判斷卻沒有來跑了,像我針對checkbox/radiobuttonlist來作magicajax,把它們的autopostback給取消掉,但是原本的程式在OnSelectedIndexChanged事件的判斷卻都沒有執行了,是否有辦法來修正呢?
謝謝


# re: MagicAjax.Net初體驗(設定,試用) 12/28/2006 8:46 AM topcat

Dear 彰仔:
MagicAjax的運作原理,就是把原本的PostBack的動作,替換成Ajax的方式與Server端的程式溝通
所以當您把AutoPostBack取消掉→這意味著不會PostBack回去
所以會失效
^_^


# re: MagicAjax.Net初體驗(設定,試用) 12/28/2006 10:16 AM 呆呆喵

小喵你介紹的magicAjax真好用哎~~~
我要用這個方法來改寫一個web的calendar...謝啦


# re: MagicAjax.Net初體驗(設定,試用) 1/5/2007 10:38 AM HO

錯誤 4 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為應用程式。 C:\VS2005Test\magicajax\magicajax\examples\examplesite (.net 2.0 only)\web.config 10

好奇怪說,編譯不成功.


# re: MagicAjax.Net初體驗(設定,試用) 1/27/2007 12:18 PM DanielChou

請問 ... http://www.magicajax.net/ 怎連不進去了 誰可以提供給我?


# re: MagicAjax.Net初體驗(設定,試用) 3/1/2007 5:23 PM nina

請問為什麼我光是設定web.config就錯了

以下是錯誤
組態錯誤
描述: 處理服務此要求所需的組態檔時發生錯誤。請檢視下列的特定錯誤詳細資訊,並適當修改您的組態檔。

剖析器錯誤訊息: 檔案 'MagicAjax' 的格式無效。

原始程式錯誤:


行 11: <system.web>
行 12: <httpModules>
行 13: <add name="MagicAjaxModule" type="MagicAjax.MagicAjaxModule, MagicAjax"/>
行 14: </httpModules>
行 15:



# re: MagicAjax.Net 取消或改變Loading..字樣 4/20/2007 9:06 PM longer


<script>
function SetMsg(msg,color,bgcolor)
{
var magicmsg = document.getElementById('__AjaxCall_Wait');
if(magicmsg!=null)
{
if(msg=='')
msg="資料載入中..."
if(color=='')
color='#FFFFFF';
if(bgcolor=='')
bgcolor='DimGray';
magicmsg.style.position = 'absolute';
magicmsg.style.height = 17;
magicmsg.style.paddingLeft = "3px";
magicmsg.style.paddingRight = "3px";
magicmsg.style.fontSize = "13px";
magicmsg.style.fontFamily = 'Verdana,Arial, Tahoma';
magicmsg.style.border = "#336699 1px solid";
magicmsg.style.backgroundColor = bgcolor;
magicmsg.style.color = color;
magicmsg.innerHTML = msg;

}
}
</script>

<asp:Button ID="ClassBtn" runat="server" Text="取 出" Height="20px" OnClientClick="SetMsg('顯示訊息....','#000000','#CBECFC')" OnClick="ClassBtn_Click" />
也許可以寫在body onload事件中


Post Feedback

Title:
Name:
Url:
驗證碼  
Comments: