使用Sencha 2使用ASMX服务
本文关键字:使用 服务 ASMX Sencha | 更新日期: 2023-09-27 18:29:39
我刚开始学习Sencha。
我有一个asmx,它返回一个List,所以xml看起来像;
<Result>
<string>One</string>
<string>Two><string>
</Results>
现在我只想在列表中显示它。
所以我的Sench代码看起来像;
Ext.define('ListItem', {
extend: 'Ext.data.Model',
config: {
fields: ['text']
}
});
var treeStore = Ext.create('Ext.data.TreeStore', {
model: 'ListItem',
defaultRootProperty: 'items',
proxy: {
type: 'ajax',
url: 'http://localhost:81/MyASMX.asmx/Test'
}
});
Ext.application({
name: 'Sencha',
launch: function () {
Ext.create('Ext.NestedList', {
fullscreen: true,
store: treeStore,
detailCard: {
html: 'You are viewing the detail card!'
}
});
}
});
但我得到一个空列表,其中的标题栏也是空的。
使用.Asmx,您还可以将xml绑定到树存储这是可能有助于的代码
function BindData(dataxml)
{
dataxml = dataxml.replace(/>/g, ">");
dataxml = dataxml.replace(/</g, "<");
var doc;
if (window.ActiveXObject) { //IE
var doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = "false";
doc.loadXML(dataxml);
} else { //Mozilla
var doc = new DOMParser().parseFromString(dataxml, "text/xml");
}
var store = new Ext.getStore('treestore');
store.removeAll();
var DataLen = doc.getElementsByTagName('FirstNode').length;
for (var i = 0; i < DataLen; i++) {
var arrnodename = doc.getElementsByTagName('nodeName')[i].firstChild.nodeValue.replace(/'"/g, '');
var arrnodename2 = doc.getElementsByTagName('nodeName2')[i].firstChild.nodeValue.replace(/'"/g, '');
store.add({ C1: arrnodename[0], C2: arrnodename2[0]});
}
}