利用AJAX与数据岛实现无刷新绑定
利用AJAX与数据岛实现无刷新绑定
发布时间:2016-12-29 来源:查字典编辑
摘要:首先我们今天要用到的是Ajax.NETProfessional,您可以从http://www.schwarz-interactive.de/...

首先我们今天要用到的是Ajax.NETProfessional,您可以从http://www.schwarz-interactive.de/获取关于AJAX.NET的相关信息。其次还需要知道XML数据岛的相关知识。

下面我们先来看一个简单的绑定例子:

第一步先确定XML数据源

<xmlID="xmlData"name="xmlData">

<root>

<METADATA>

<AUTHOR>JohnSmith</AUTHOR>

<GENERATOR>VisualNotepad</GENERATOR>

<PAGETYPE>Reference</PAGETYPE>

<ABSTRACT>Specifiesadataisland</ABSTRACT>

</METADATA>

<METADATA>

<AUTHOR>JohnSmith2</AUTHOR>

<GENERATOR>VisualNotepad2</GENERATOR>

<PAGETYPE>Reference2</PAGETYPE>

<ABSTRACT>Specifiesadataisland2</ABSTRACT>

</METADATA>

<METADATA>

<AUTHOR>JohnSmith3</AUTHOR>

<GENERATOR>VisualNotepad3</GENERATOR>

<PAGETYPE>Reference3</PAGETYPE>

<ABSTRACT>Specifiesadataisland3</ABSTRACT>

</METADATA>

</root>

</xml>

第二步确定绑定容器,在这里我们使用Table

<TABLEdataSrc="#xmlData"border=1>

<TR>

<TD><spandataFld="AUTHOR">loading...</span></TD>

<TD><spandataFld="GENERATOR">loading...</span></TD>

<TD><spandataFld="PAGETYPE">loading...</span></TD>

<TD><spandataFld="ABSTRACT">loading...</span></TD>

</TR>

</TABLE>

把这两段代码Copy到您的HTMl页面运行既可看到效果。

第一段是我们的XML数据源,也就是要绑定的数据,METADATA结点相当于表名,AUTHOR、GENERATOR、PAGETYPE、ABSTRACT相当于列名,下面的Table是用来显示数据的容器。<TABLEdataSrc="#xmlData"border=1>是指定Table的数据源,<spandataFld="AUTHOR">loading...</span>绑定字段名。

好了,知道这些之后就再来看如何结合Ajax实现无刷新绑定。

第一步:配置Ajax,在Web.config文件中加入配置节:

<httpHandlers>

<addverb="POST,GET"path="ajaxpro/*.ashx"type="AjaxPro.AjaxHandlerFactory,AjaxPro"/>

</httpHandlers>

第二步,编写返回数据集的代码:

publicclassMyClass

{

[AjaxMethod]

publicstringGetDataSet()

{

DataSetdst=newDataSet();

DataTabledt=newDataTable();

dt.Columns.Add("Text");

dt.Columns.Add("Number");

Randomrandom=newRandom(Guid.NewGuid().GetHashCode());

for(inti=0;i<random.Next(10,20);i++)

{

DataRowrow=dt.NewRow();

row["Text"]=Guid.NewGuid().ToString("N");

row["Number"]=random.Next(100);

dt.Rows.Add(row);

}

dst.Tables.Add(dt);

stringtext="";

using(MemoryStreamms=newMemoryStream())

{

dst.WriteXml(ms);

ms.Position=0;

StreamReadersr=newStreamReader(ms);

text=sr.ReadToEnd();

}

returntext;

}

}

第三步:在Page_Load中注册该方法,AjaxPro.Utility.RegisterTypeForAjax(typeof(WebTest1.AjaxTest1));(WebTest1是名称空间的名字)

第四步:添加客户端绑定

<INPUTonclick="WebTest1.MyClass.GetDataSet(callback)"type="button"value="GetDataSet">

<divid="oDataPanel">

</div>

<TABLEdatasrc="#xmlData"WIDTH="500"BORDER="1"

CELLSPACING="1"CELLPADDING="1">

<thead>

<tr>

<thwidth="70%">姓名</th>

<thwidth="30%">年龄</th>

</tr>

</thead>

<TR>

<TD><spandatafld="Text"></span></TD>

<TD><spandatafld="Number"></span></TD>

</TR>

</TABLE>

<divid="oDataPanel">是准备用来存放Xml数据源的容器

第五步:编定加载数据的JavaScript代码

functioncallback(res)

{

if(!res.error)

{

document.all.oDataPanel.innerHTML=’<xmlid="xmlData">’+res.value+’</xml>’;

}

else

{

alert(res.error.Message);

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类