转载 ajax XML dataset
2009-01-10 14:42
232 查看
Ajax无刷新联动之XML
先讲一下本问的意思,就是用Ajax简单做一个二级联动,从数据库读取数据,转换成XML格式输入,然后Ajax接收实现无刷联动效果...
先看一下前台页面的JS代码:(为了方便Copy,代码中的行号取消了).
1. CreateXMLObj无可非议是创建xmlHttpRequest对象的,网上一搜一大堆,这个可以根据自己的习惯来写...
function CreateXMLObj()
{
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
}
2.下面这个就是发送数据给后台,等待返回数据的了,看代码前先看张页面图片:
ddlProcPath.DataSource = this.GetApprovalPathName();//从这里可以看出我的两组联动是一样的了吧,调用的方法根本就是同一个
ddlProcPath.DataTextField = "RsKey";
ddlProcPath.DataValueField = "RsCode";
ddlProcPath.DataBind();
ddlProcPath.Items.Insert(0, new ListItem("--请选择--", "-1"));
ddlProcPath.Attributes.Add("onchange", "callServer(2)");
}
上面的代码也就是同一个页面的前台和后台代码:
重点还是得看Ajax请求数据的页面(其实也很简单,只要得到一个xml格式就行了,当然如果你是调用的webservice,也是大同小异,因为webservice返回的也就是一个XML格式的文档):
来看看Selectappr.aspx页面的代码, 为了得到一个标准的XML格式,只需要保留第一行的Page指令就行了,其他的删除即可.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Selectappr.aspx.cs" Inherits="TopFounder.Web.Protals.BaseFrameWork.Selectappr" %>
在Selectappr.aspx.cs 中的我们只需要接收Ajax 传过来的参数,到数据库中找到 二级联动的数据,然后填充到DataSet中,在用XmlTextWriter 直接吧DS中的数据写出到页面
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["apprid"] != null || Request.QueryString["apprid"].ToString() != "")
{
string procid = Request.QueryString["apprid"].ToString();//从GET请求中得到传过来的一级联动的VALUE
DataSet ds = CommonHelper.GetAllPathNameForDs(procid); //到数据库中查找出数据,然后存放到DataSet中,因为DataSet导出XML最直接,有自带的方法,当然其他的也是可以的
XmlTextWriter xtw = new XmlTextWriter(Response.OutputStream, System.Text.Encoding.UTF8);//这点要注意了,编码格式要正确不然中文是乱码,在AJAX接收的时候会接收不到乱码的,oDoc.loadXML(result);乱码的情况家DOM也是LOAD不到XML的....
xtw.Formatting = Formatting.Indented;//这几句是格式的设置
xtw.Indentation = 4;
xtw.IndentChar = ' ';
ds.WriteXml(xtw); //这个就是吧XML写到Selectappr.aspx的页面中去了.....
xtw.Flush();
Response.End();
xtw.Close();
}
}
也就这么多了,希望大家能看的明白,上班时间也就先这样了,不明白的在问我好了...................
先讲一下本问的意思,就是用Ajax简单做一个二级联动,从数据库读取数据,转换成XML格式输入,然后Ajax接收实现无刷联动效果...
先看一下前台页面的JS代码:(为了方便Copy,代码中的行号取消了).
1. CreateXMLObj无可非议是创建xmlHttpRequest对象的,网上一搜一大堆,这个可以根据自己的习惯来写...
function CreateXMLObj()
{
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
}
2.下面这个就是发送数据给后台,等待返回数据的了,看代码前先看张页面图片:
ddlProcPath.DataSource = this.GetApprovalPathName();//从这里可以看出我的两组联动是一样的了吧,调用的方法根本就是同一个
ddlProcPath.DataTextField = "RsKey";
ddlProcPath.DataValueField = "RsCode";
ddlProcPath.DataBind();
ddlProcPath.Items.Insert(0, new ListItem("--请选择--", "-1"));
ddlProcPath.Attributes.Add("onchange", "callServer(2)");
}
上面的代码也就是同一个页面的前台和后台代码:
重点还是得看Ajax请求数据的页面(其实也很简单,只要得到一个xml格式就行了,当然如果你是调用的webservice,也是大同小异,因为webservice返回的也就是一个XML格式的文档):
来看看Selectappr.aspx页面的代码, 为了得到一个标准的XML格式,只需要保留第一行的Page指令就行了,其他的删除即可.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Selectappr.aspx.cs" Inherits="TopFounder.Web.Protals.BaseFrameWork.Selectappr" %>
在Selectappr.aspx.cs 中的我们只需要接收Ajax 传过来的参数,到数据库中找到 二级联动的数据,然后填充到DataSet中,在用XmlTextWriter 直接吧DS中的数据写出到页面
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["apprid"] != null || Request.QueryString["apprid"].ToString() != "")
{
string procid = Request.QueryString["apprid"].ToString();//从GET请求中得到传过来的一级联动的VALUE
DataSet ds = CommonHelper.GetAllPathNameForDs(procid); //到数据库中查找出数据,然后存放到DataSet中,因为DataSet导出XML最直接,有自带的方法,当然其他的也是可以的
XmlTextWriter xtw = new XmlTextWriter(Response.OutputStream, System.Text.Encoding.UTF8);//这点要注意了,编码格式要正确不然中文是乱码,在AJAX接收的时候会接收不到乱码的,oDoc.loadXML(result);乱码的情况家DOM也是LOAD不到XML的....
xtw.Formatting = Formatting.Indented;//这几句是格式的设置
xtw.Indentation = 4;
xtw.IndentChar = ' ';
ds.WriteXml(xtw); //这个就是吧XML写到Selectappr.aspx的页面中去了.....
xtw.Flush();
Response.End();
xtw.Close();
}
}
也就这么多了,希望大家能看的明白,上班时间也就先这样了,不明白的在问我好了...................
相关文章推荐
- 【转载并整理】AJAX XmlHttpRequest对象详解
- (转载)Asp.net中如何将DataSet写入xml文件,及如何将xml读出来绑定到DataGrid 选择自 kgdiwss 的 Blog
- 转载把DataSet、DataTable、DataView格式转换成XML字符串、XML文件
- Ajax 和 XML: 五个很酷的 Ajax 小部件转载自developerworks
- 一个通过DataSet操作XML的类(转载)
- ajax+WebServer及Dataset转xml操作实例
- 转载:ajax.net与dataset等
- XML、DataSet、DataGrid结合写成广告管理程序(下)(转载)
- 转载把DataSet、DataTable、DataView格式转换成XML字符串、XML文件
- 转载把DataSet、DataTable、DataView格式转换成XML字符串、XML文件
- XML、DataSet、DataGrid结合写成广告管理程序(上)(转载)
- Ajax 和 XML: 五种常见 Ajax 模式(转载)
- C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)【转载】
- asp.net中jquery(ajax)方式处理ashx返回的xml数据(转载)
- XML 与 DataSet/DataTable 互相转换实例(C#)——转载
- Ajax 和 XML: 使用 Ajax 实现 lightbox(转载)
- C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)【转载】
- XML 与 DataSet/DataTable 互相转换实例(C#)——转载
- Ajax 和 XML: 五种 Ajax 反模式(转载)
- 转载把DataSet、DataTable、DataView格式转换成XML字符串、XML文件