使用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!'
            }
        });
    }
});

但我得到一个空列表,其中的标题栏也是空的。

使用Sencha 2使用ASMX服务

使用.Asmx,您还可以将xml绑定到树存储这是可能有助于的代码

function BindData(dataxml)
{
   dataxml = dataxml.replace(/&gt;/g, ">");
   dataxml = dataxml.replace(/&lt;/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]});
     }
}