步驟一:從資料庫返回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