我创建了一个示例Web服务,它返回一个xml,如下所示。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml, UseHttpGet = true, XmlSerializeString = false)]
public XmlDocument GetPeople()
{
return Factory.GetPeopleController().GetPeople(); //Returning an an xml
}
我正在调用webservice方法,如下所示
<html>
<script type="text/javascript">
Ext.require([
'Ext.data.*',
'Ext.grid.*'
]);
debugger
Ext.onReady(function () {
Ext.define('Person', {
extend: 'Ext.data.Model',
proxy: {
type: 'ajax',
reader: 'xml'
},
fields: [
// set up the fields mapping into the xml doc
// The first needs mapping, the others are very basic
'Id', 'FirstName', 'LastName', 'BirthDate']
});
debugger
// create the Data Store
var store = Ext.create('Ext.data.Store', {
model: 'Person',
autoLoad: true,
proxy: {
// load using HTTP
type: 'ajax',
url: "Service.asmx/GetPeopleXml",
// the return will be XML, so lets set up a reader
reader: {
type: 'xml',
// records will have an "Item" tag
record: 'Person',
idProperty: 'Id'
}
}
});
// create the grid
Ext.create('Ext.grid.Panel', {
store: store,
columns: [
{ text: "Id", flex: 1, dataIndex: 'Id' },
{ text: "FirstName", width: 180, dataIndex: 'FirstName' },
{ text: "LastName", width: 115, dataIndex: 'LastName' },
{ text: "BirthDate", width: 100, dataIndex: 'BirthDate' }
],
renderTo: 'example-grid',
width: 540,
height: 200
});
});
</script>
</head>
<body>
<div id="example-grid"></div>
</body>
</html>
从服务接收xml:
1
约翰
母鹿
1980年5月3日
2
迈克尔
人群
1975年12月5日
我正在使用extjs
在网页中调用此服务方法。
我无法得到结果。所以请建议我如何将xml结果绑定到网格。
先谢谢。