
步骤一:从数据库返回XML成字符串步骤一:从数据库返回XML成字符串#region 步骤一:从数据库返回XML成字符串

public static string GetXml(int parentId)

{
IList<CategoryInfo> listCtgs = new Category().GetCategories(parentId);
string xml = "<Ctgs>";
for (int i = 0; i < listCtgs.Count; i++)

{
xml += "<Ctg>";
xml += "<Name>" + ReplaceXml(listCtgs[i].CategoryName) + "</Name>";
xml += "<No>" + listCtgs[i].CategoryNo + "</No>";
xml += "<HasChild>" + listCtgs[i].HasChild.ToString() + "</HasChild>";
xml += "<NamePath>" + ReplaceXml(listCtgs[i].NamePath) + "</NamePath>";
xml += "</Ctg>";
}
xml += "</Ctgs>";
return xml;
}

#endregion


步骤二:新建Category.asmx 返回XMLWebMethod XML文档步骤二:新建Category.asmx 返回XMLWebMethod XML文档#region 步骤二:新建Category.asmx 返回XMLWebMethod XML文档
[WebMethod]
public XmlDataDocument GetCategoriesXml(int categoryNo)

{
XmlDataDocument xd = new XmlDataDocument();
xd.LoadXml(GetXml(categoryNo));
return xd;
}

#endregion


步骤三 写个公共Jquery ajax 返回xml方法并有回调函数步骤三 写个公共Jquery ajax 返回xml方法并有回调函数#region 步骤三 写个公共Jquery ajax 返回xml方法并有回调函数

function XmlWebService(url,pars,callback)
{

$.ajax(
{
data:pars,
url: url,
type: "POST",
ContentType: "text/xml;utf-8",//这里需要加个utf-8
dataType:'xml',
cache: true,

success:function(data)
{
callback(data);
},

error:function(data,status)
{
alert('Ajax xmlWebServicer Error \n'+ data.responseText);
}
}
);
}

#endregion


步骤四:Web前台读出XML里面的节点到控件里步骤四:Web前台读出XML里面的节点到控件里#region 步骤四:Web前台读出XML里面的节点到控件里

$(document).ready(function()
{
initCurPage();
});

//初始页面
function initCurPage()


{
ReadLevelCtgs(1,1);
}

//取子类XML格式列表
function ReadLevelCtgs(levelNum,parentId)


{
//Jquery ajax取值并callback回调

XmlWebService('Category.asmx/GetCategoriesXml',
{categoryNo:parentId},function(data)
{BuildLevelCtgs(levelNum,data)});
}

//用读出的xml绑定到前台控件
function BuildLevelCtgs(levelNum,xml)


{
$(curDivId).text("");

$(xml).find('Ctg').each(function()
{
var ctgDiv=$('<div></div>');
ctgDiv.appendTo(curDivId);
});
}

#endregion

//author: keen
//备注:Jquery ajax 可以返回转自:
http://www.cnblogs.com/xiaobaigang/archive/2008/04/03/1135984.html