MagicAjax使用手冊
----------------------------------------------------------------------------------------------------
0001:
MagicAjax官方主頁:www.magicajax.net
----------------------------------------------------------------------------------------------------
0002:
MagicAjax的局限性:
●在AjaxPanel的AjaxCall過程中,如果有樣式變化,客戶端瀏覽器將不會刷新(除非使用MagicAjax的類庫處
理)。
●FileUpload空間在AjaxPanel中無法使用。
----------------------------------------------------------------------------------------------------
0003:
如何去掉MagicAjax中的Loading:
●獲取MagicAjax的源代碼(如果升級到.NET 2.0,則要使用新生成的這個項目文件打開編譯)。
●打開MagicAjax源代碼中的AjaxCallObject.js文件,找到CreateWaitElement函數(代碼最後的一個函數)。
●可以修改為如下代碼:(去掉了Loading)
function CreateWaitElement() {
var elem = document.getElementById('__AjaxCall_Wait');
if (!elem) {
elem = document.createElement("div");
elem.id = '__AjaxCall_Wait';
elem.style.visibility = 'hidden';
document.body.insertBefore(elem, document.body.lastChild);
}
waitElement = elem;
}
●重新編譯項目即可。
----------------------------------------------------------------------------------------------------
0004:
MagicAjax的使用:
●添加MagicAjax.dll的引用。
●在工具箱中也添加MagicAjax.dll(這樣就可以直接拖拽控件到頁面上)。
●配置web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!--【1】為MagicAjax添加的配置-->
<section name="magicAjax" type="MagicAjax.Configuration.MagicAjaxSectionHandler, MagicAjax"/>
</configSections>
<!--【2】為MagicAjax添加的配置-->
<magicAjax tracing="false">
<pageStore/>
</magicAjax>
<appSettings/>
<connectionStrings/>
<system.web>
<pages>
<controls>
<!--【3】為MagicAjax添加的配置-->
<add namespace="MagicAjax.UI.Controls" assembly="MagicAjax" tagPrefix="ajax"/>
</controls>
</pages>
<httpModules>
<!--【4】為MagicAjax添加的配置-->
<add name="MagicAjaxModule" type="MagicAjax.MagicAjaxModule, MagicAjax"/>
</httpModules>
<compilation debug="true">
<assemblies>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
</compilation>
<authentication mode="Windows"/>
</system.web>
</configuration>
----------------------------------------------------------------------------------------------------
0005:
MagicAjax很好的解決了腳本跨域問題,如果Ajax是在一個嵌入在Iframe的頁面中實現的,那麼微軟的Atlas是
無法解決跨域問題(微軟官方已經說明)。那麼這種情況的Ajax實現可以使用MagicAjax和AjaxPro的實現。
----------------------------------------------------------------------------------------------------
0006:
CallTimer的使用:
HTML部分:
<ajax:AjaxPanel ID="AjaxPanel1" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="進程名稱" DataField="ProcName" />
<asp:BoundField HeaderText="內存佔用率" DataField="ProcMemory" />
</Columns>
</asp:GridView>
</ajax:AjaxPanel>
源代碼部分:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
MagicAjax.AjaxCallHelper.SetAjaxCallTimerInterval(500);
}
ShowProcesses();
}
private void ShowProcesses()
{
System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcesses();
System.Data.DataTable dt = new System.Data.DataTable("Processes");
dt.Columns.Add("ProcName");
dt.Columns.Add("ProcMemory", typeof(Int64));
foreach (System.Diagnostics.Process process in processes)
{
dt.Rows.Add(new object[] { process.ProcessName, process.WorkingSet64 / 1000 });
}
System.Data.DataView dv = dt.DefaultView;
dv.Sort = "ProcMemory DESC";
this.GridView1.DataSource = dv;
this.GridView1.DataBind();
}
----------------------------------------------------------------------------------------------------
0007:
在AjaxPanel中使用消息提示框:MagicAjax.AjaxCallHelper.WriteAlert("你好");
----------------------------------------------------------------------------------------------------