感谢您迄今为止所有出色的帮助 - 我的小项目取得了很好的进展。然而,我遇到了另一个无法通过的障碍。
我的服务界面有一个如下所示的功能:
<OperationContract()> _
<WebGet(BodyStyle:=WebMessageBodyStyle.Bare, ResponseFormat:=WebMessageFormat.Json,
RequestFormat:=WebMessageFormat.Json, UriTemplate:="GetCustomers?strCustomers={strCustomers}&callback={CustomerCallback}")> _
Function GetCustomers(ByVal strCustomers As String, ByVal CustomerCallback As String) As Stream
此函数返回json数据,如下所示:
For i = 0 To CustomerTable.Rows.Count - 1
CustomerRow = CustomerTable.Rows(i)
Dim CC As New Customers
CC.Code = CustomerRow.Item("Code")
CC.Name = CustomerRow.Item("Name")
CC.InternalID = CustomerRow.Item("InternalID")
Cust.Add(CC)
Next i
' Serialize the results as JSON
Dim serializer As DataContractJsonSerializer = New DataContractJsonSerializer(Cust.GetType())
Dim Stream As MemoryStream = New MemoryStream
serializer.WriteObject(Stream, Cust)
' Return the results serialized as JSON
Dim strJson As String = Encoding.Default.GetString(Stream.ToArray())
Dim jsCode As String = CustomerCallback & "(" & strJson & ")" '"({""Status"":""OK""});"
WebOperationContext.Current.OutgoingResponse.ContentType = "application/javascript"
Return New MemoryStream(Encoding.UTF8.GetBytes(jsCode))
好的,所以现在将回调函数发送到我应该使用这个数据的jquery / ajax函数。这是我的ajax电话:
var customStore = new DevExpress.data.CustomStore({ load:function(){
return $.ajax({
type: 'GET',
url: url,
data: {},
dataType: "jsonp",
success: function (result) {
console.log(result.strCustomers);
},
error: function (xhr, status, error) {
console.log(JSON.stringify(xhr));
console.log(JSON.stringify(status));
console.log(JSON.stringify(error));
}
});
},
totalCount: function(loadOptions) {
return 0;
}
});
此代码执行时没有任何错误,因此从我这边做这个的方式应该是正确的。
问题是我无法将这些数据显示在数据网格中;所以我认为我实际上并没有得到正确的数据,尽管没有错误。
我想知道:
我是否通过正确的方式从WCF服务发送了数据? 如何在jquery页面中进一步使用实际数据?
整个问题是,我需要从我的WCF服务中获取所有客户,通过跨域调用(我已经管理过),然后在devextreme datagrid中显示所有这些客户:
var gridDataSourceConfiguration = {
store: customStore
};
var dataGridOptions = {
dataSource: gridDataSourceConfiguration,
filterRow: {
visible: ko.observable(true),
applyFilter: ko.observable("auto")
},
searchPanel: {
visible: true,
width: 240,
placeholder: 'Search...'
},
headerFilter: {
visible: true
},
columns: [{
dataField: "InternalID",
width: 30,
caption: "ID"
}, {
dataField: 'Name',
alignment: 'right'
}, {
dataField: "Code",
alignment: 'right'
}
]
};
那么,我怎样才能将数据导入数据网格?
答案 0 :(得分:0)
很抱歉看了你宝贵的时间,但我已经解决了。我在上面没有发布的代码上遇到了问题。