利用AJAX与数据岛实现无刷新绑定

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

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

第一步先确定XML数据源

<xml ID="xmlData" name="xmlData">

 <root>

<METADATA>

 <AUTHOR>John Smith</AUTHOR>

 <GENERATOR>Visual Notepad</GENERATOR>

 <PAGETYPE>Reference</PAGETYPE>

 <ABSTRACT>Specifies a data island</ABSTRACT>

</METADATA>

<METADATA>

 <AUTHOR>John Smith2</AUTHOR>

 <GENERATOR>Visual Notepad2</GENERATOR>

 <PAGETYPE>Reference2</PAGETYPE>

 <ABSTRACT>Specifies a data island2</ABSTRACT>

</METADATA>

<METADATA>

 <AUTHOR>John Smith3</AUTHOR>

 <GENERATOR>Visual Notepad3</GENERATOR>

 <PAGETYPE>Reference3</PAGETYPE>

 <ABSTRACT>Specifies a data island3</ABSTRACT>

</METADATA>

 </root>

</xml>

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

<TABLE dataSrc="#xmlData" border=1>

 <TR>

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

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

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

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

 </TR>

</TABLE>

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

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

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

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

<httpHandlers>

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

</httpHandlers>

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

public class MyClass

{

 [AjaxMethod]

 public string GetDataSet()

 {

DataSet dst = new DataSet();

DataTable dt = new DataTable();

dt.Columns.Add("Text");

dt.Columns.Add("Number");

Random random = new Random(Guid.NewGuid().GetHashCode());

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

{

 DataRow row = dt.NewRow();

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

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

 dt.Rows.Add(row);

}

dst.Tables.Add(dt);

string text = "";

using(MemoryStream ms = new MemoryStream())

{

 dst.WriteXml(ms);

 ms.Position = 0;

 StreamReader sr = new StreamReader(ms);

 text = sr.ReadToEnd();

}

return text;

 }

}

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

第四步:添加客户端绑定

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

<div id="oDataPanel">

</div>

<TABLE datasrc="#xmlData" WIDTH="500" BORDER="1"

CELLSPACING="1" CELLPADDING="1">

 <thead>

<tr>

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

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

</tr>

 </thead>

 <TR>

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

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

 </TR>

</TABLE>

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

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

function callback(res)

{

if(!res.error)

{

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

}

else

{

alert(res.error.Message);

}

}

(0)

相关推荐

  • 利用AJAX与数据岛实现无刷新绑定

    首先我们今天要用到的是Ajax.NET Professional ,您可以从http://www.schwarz-interactive.de/ 获取关于AJAX.NET的相关信息.其次还需要知道XML数据岛的相关知识. 下面我们先来看一个简单的绑定例子: 第一步先确定XML数据源 <xml ID="xmlData" name="xmlData"> <root> <METADATA> <AUTHOR>John Smit

  • Laravel框架基于ajax和layer.js实现无刷新删除功能示例

    本文实例讲述了Laravel框架基于ajax和layer.js实现无刷新删除功能.分享给大家供大家参考,具体如下: 1.首先要引入layer.js <script type="text/javascript" src="{{ asset('/public/bootstrap/js/jquery-3.2.1.min.js') }}"></script> <script type="text/javascript" sr

  • Ajax实现弹出式无刷新城市选择功能代码

    本文实例讲述了Ajax实现弹出式无刷新城市选择功能.分享给大家供大家参考.具体如下: 这是一款很棒的全国城市选择效果,添加城市时先添加组:找到id是"selectSub"中select标签下,添加option标签,value属性递增,找到id是"selectSub",按照原有格式添加div,其id属性递增:然后添加二级副选框选项:复制id是"selectSub"下任意input标签,粘贴在需要添加的位置即可,你想扩展的话,配合动态语言完全可以将城

  • jQuery基于ajax实现带动画效果无刷新柱状图投票代码

    本文实例讲述了jQuery基于ajax实现带动画效果无刷新柱状图投票代码.分享给大家供大家参考.具体如下: 这里介绍的jQuery ajax投票特效,带动画效果 类似进度条风格的柱状图,以你最喜欢的编程语言是哪一种为例来演示投票效果,以Ajax方式无刷新投票,每点击一次,横向的柱状图就会增长一节.如果在火狐或chrome下浏览,那些柱状图横条是圆角的,在IE8下则无此效果. 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <html> <head>

  • 基于jQuery Ajax实现下拉框无刷新联动

    本文实例为大家分享了jQuery Ajax实现下拉框无刷新联动的具体代码,供大家参考,具体内容如下 HTML代码: @{ Layout = null; } @using DAL; @using System.Data; @{ AreaDal areaDal = new AreaDal(); string areaId = ViewBag.areaId; DataRow drArea = areaDal.GetArea(areaId); string countyId = drArea == nu

  • asp.net Mvc4 使用ajax结合分页插件实现无刷新分页

    本文为在mvc4中使用ajax实现无刷新分页demo,记录一下. 解决方案思想:页面数据的初始加载和按页加载都是通过ajax来进行,页面分页链接点击后利用ajax技术发送当前页码到后端控制器,后端控制器根据当前页码和设置的pageSize从数据库中取出对应页的数据.后端控制器处理完后利用PartialView方法把数据返回到分部视图中,利用ViewBag来返回总记录数和pageSize.ajax通过回调函数把控制器返回的分部视图内容加载到主视图中显示. 说明:分页具体的分页导航和样式使用了kkp

  • Ajax+php数据交互并且局部刷新页面的实现详解

    什么是Ajax? 国内翻译常为"阿贾克斯"和阿贾克斯足球队同音,AJAX 是一种用于创建快速动态网页的技术,他不是新语言,而是一种使用现有标准的新方法.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新,这样就可以在不重新加载整个网页的情况下,对网页的某部分进行更新. XMLHttpRequest 是 AJAX 的基础,用于和服务器交换数据.所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject) 下面这篇文章主

  • 前台JS(jquery ajax)调用后台方法实现无刷新级联菜单示例

    前台用AJAX直接调用后台方法,老有人发帖提问,没事做个示例 CasMenu.aspx页面: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CasMenu.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr

  • jQuery的ajax中使用FormData实现页面无刷新上传功能

    接着上一篇ajax系列之用jQuery的ajax方法向服务器发出get和post请求写,这篇主要写如何利用ajax和FormData实现页面无刷新的文件上传效果,主要用到了jQuery的ajax()方法和XMLHttpRequest Level 2的FormData接口.关于FormData,大家可以看MDN文档. 1,先看效果图 期望的功能和效果很简单:点击页面中的上传文件表单控件,选择文件后点击"ajax提交",将文件上传至服务器,上传成功后,页面给出一个简单的提示. 2,前端的代

  • AJAX初体验之实战篇——打造博客无刷新搜索

    如果你对AJAX不是很了解,可以先看看这篇教程的前篇<AJAX初体验之上手篇>. 现在博客很流行,相信应该上网时间稍微长点的朋友都会在这或者在那的有一个自己的博客.对于一些有一定能力的朋友,可能更喜欢自己去下载一个博客程序来架设一个自己的博客,而不是使用一些博客网站提供的服务.而大部分博客程序所带的搜索功能是提交查询关键字到搜索页面,然后在后台生成搜索结果,再呈现给用户,这过程之中浪费了一些带宽,如博客的侧边栏.要节约这一些带宽,我们可以用AJAX来打造自己的无刷新日志搜索. 在本篇教程中,数

随机推荐