Anthem.Net真是個好東西,不但開源而且使用簡單,可以便捷地建立各種Ajax應用。
需要的代碼量很少,首先在控制項的伺服器事件中寫入邏輯,然後添加一句控制項ID.UpdateAfterCallBack = true;就可以自動回調更新這個控制項了。還對有AutoPostBack屬性的控制項提供AutoCallBack屬性。有了這兩個屬性,於是控制項具有了無重新整理更新和傳遞資料的功能。
Anthem.Net還提供了Anthem.Manager.AddScriptForClientSideEval()方法,可以隨時隨地在伺服器端執行javascript函數,這個方法的作用是巨大的。
有了利器,實現無重新整理等待頁面便容易起來。
在前端頁面添加loading圖象或表格<DIV id="pnlAjaxLoad" style="DISPLAY: none">
<DIV id="Msg1"><FONT face="Verdana, Arial, Helvetica" color="#ea9b02" size="2"><B>正在載入</B></FONT></DIV>
</DIV >
接著在javascript檔案中寫入顯示和隱藏loading條的函數,頁面要包含這個檔案function HideAjAxLoading()//隱藏表單
{
document.getElementById("pnlAjaxLoad").style.display='none';
}
function ShowAjAxLoading()//顯示表單
{
var elem = document.getElementById("pnlAjaxLoad");
if(elem)
{
elem.style.display = 'block';
elem.style.visibility = 'visible';
}}
最後在事件中加入以下代碼,按每個項目不同的需求,可以是PageLoad事件,Button Click事件,Index Changed事件任何事件。btnLast.Attributes.Add("onclick", "ShowAjAxLoading();");
dropChangePage.Attributes.Add("onChange", "ShowAjAxLoading();");
//注意必須添加控制項的事件觸發時執行的js函數
public void PagerButtonClick(object sender, EventArgs e)
{
//邏輯處理代碼
Anthem.Manager.AddScriptForClientSideEval("HideAjAxLoading();");
}
到這裡就大功告成,效果是很完美的 Cheers!
使用Anthem.Net出現的相關問題也有一些,由雩都是基於js的操作,因此在伺服器端的很多方法不能起作用,如常見的 Response.Write。如果在Page頁面中聲明了全域變數,那麼在回調的時候全域變數回賦值為預設值,造成資料的丟失。但頁面上的控制項可以通過 ViewStates儲存自己的資訊。
Anthem.Net還提供了額外的實用控制項如:AutoSuggestTextBox,EditLabel,ProgressBar,Calendar,YuiAutoComplete等,為了方便開發人員使用,更提供了大量的執行個體代碼和上網Demo,這是難能可貴的,不論是初學者還是有經驗的開發人員都能快速上手。
總之,使用Anthem.Net進行Ajax開發是明智的選擇~
國內外相關網站:http://anthem-dot-net.sourceforge.net/ http://www.cnblogs.com/RChen/category/69922.htmlCreated by jecray