日期:2014-05-16  浏览次数:20703 次

请问asp.net中我想用datatable通过什么转换方式变成前台jquery可用的xml格式,具体的问题如下,希望给出代码
就是我想用asp.net做个ajax的显示,后台我能得到个datatable,前台我至少要传两个值到后台,我要用xml的方式。

后台通过怎么处理这个datatable通过response到前台,使得前台可以使用。------这个是重点

我想转换成xml,不要json,我的数据用json有问题。

希望能给出具体的代码,主要要后台的代码,前台的给出来也最好,我最少要向后台传两个值
------解决方案--------------------
将DataTable序列化为XML字符串然后输出就好了

xxxx.aspx
public string DataTableToXMLString(System.Data.DataTable dt)
    {
        if (dt == null) return null;
        System.Text.StringBuilder sXML = new System.Text.StringBuilder();
        System.IO.StringWriter sWriter = new System.IO.StringWriter(sXML);
        System.Xml.XmlTextWriter xWriter = new System.Xml.XmlTextWriter(sWriter);

        if (string.IsNullOrEmpty(dt.TableName)) dt.TableName = "row";
        try
        {
            dt.WriteXml(xWriter);
            return sXML.ToString();
        }
        catch { }
        finally { sWriter.Close(); xWriter.Close(); }
        return null;
    }
 protected void Page_Load(object sender, EventArgs e)
{
string v1=Request.Form["v1"],v2=Request.Form["v2"];
if (string.IsNullOrEmpty(v1)&&string.IsNullOrEmpty(v2)){
DataTable dt;
//通过v1,v2读取数据库填充DataTable
string xml=DataTableToXMLString(dt);/////
Response.ContentType = "text/xml";//////////
Response.Write(xml);///////
Response.End();///////
}
}


$.ajax({url:'xxxx.aspx',type:'POST',data:'v1=xxxxx&v2=xxxxxx',dataType:'xml'
,success:function(XMLDOM){/*XMLDOM就是xml的dom根节点,自己解析,不会网上查下*/}
,errof:function(xhr){alert('加载XML出错!'+xhr.responseText)}
});