目標:使用kendo ui圖表組件繪製部門以投影工作流程 工作流程結構如下: 每個部門可能有多個策略,每個策略可能有多個程序,每個程序可能有多個項目。Kendo Diagram Datasource - json
我有一個WCF服務,當被調用時返回一個JSON字符串。 該服務調用一個存儲過程返回XML,在vb.net然後我將該XML轉換爲json(使用json.net)。
服務代碼:
Public Function GetStakeholderRelationshipMatrix(StakeholderId As Integer) As String
Try
conn.Open()
Dim da = New SqlDataAdapter()
sCommand = New SqlCommand("uspGetRelationshipMatrix", conn)
sCommand.CommandType = CommandType.StoredProcedure
sCommand.Parameters.AddWithValue("@StakeholderId", StakeholderId)
xmlDoc.LoadXml(sCommand.ExecuteScalar())
Return JsonConvert.SerializeXmlNode(xmlDoc)
Catch ex As Exception
Return -1
End Try
End Function
XML數據
<Departments>
<Department Id="7" Name="Information Technology Department">
<Strategies Id="21" Name="Increase Revenue">
<Programs Id="45" Name="Program1">
<Projects Id="4" Name="test3" />
</Programs>
<Programs Id="49" Name="Program4">
<Projects Id="2" Name="Test1" />
<Projects Id="3" Name="Test2" />
</Programs>
</Strategies>
</Department>
</Departments>
Json的轉換數據:
{"d":"{\"Departments\":{\"Department\":{\"@Id\":\"7\",\"@Name\":\"Information Technology Department\",\"Strategies\":{\"@Id\":\"21\",\"@Name\":\"Increase Revenue\",\"Programs\":[{\"@Id\":\"45\",\"@Name\":\"Program1\",\"Projects\":{\"@Id\":\"4\",\"@Name\":\"test3\"}},{\"@Id\":\"49\",\"@Name\":\"Program4\",\"Projects\":[{\"@Id\":\"2\",\"@Name\":\"Test1\"},{\"@Id\":\"3\",\"@Name\":\"Test2\"}]}]}}}}"}
我我一直無法將數據(json)綁定到圖表組件,以便成功顯示工作流程。我需要將json字符串綁定到圖表組件的幫助。
劍道代碼:
<div id="visual"></div>
var dsRelationshipMatrix = new kendo.data.DataSource({
transport: {
read: function (options) {
$.ajax({
url: "wcf service return json string",
contentType: "application/json; charset=utf-8",
dataType: "json",
type: "GET",
success: function (result) {
var obj = $.parseJSON(result.d);
if (obj == null) {
options.success([]);
} else {
options.success(obj);
}
},
error: function (result) {
options.error(result)
}
});
}
},
schema: {
data: function (data) {
return data
}
}
}); //closes data source
function createDiagram() {
$("#visual").kendoDiagram({
dataSource: new kendo.data.HierarchicalDataSource({
data: dsRelationshipMatrix,
schema: {
model: {
children: "Strategies"
}
}
}),
layout: {
type: "layered"
},
shapeDefaults: {
visual: visualTemplate
},
connectionDefaults: {
stroke: {
color: "#979797",
width: 2
}
}
});
var diagram = $("#visual").getKendoDiagram();
diagram.bringIntoView(diagram.shapes);
}
嗨,歡迎來到SO。你能否更清楚地說明你的問題?閱讀本文[http://stackoverflow.com/help/how-to-ask](http://stackoverflow.com/help/how-to-ask)。但是我必須補充說明你的問題很好地添加了很多信息。 :) – 2014-09-23 21:54:56
我需要能夠在kendo中設置分層數據源,以便填充圖組件中的數據。花了一些時間研究之後,我認爲問題在於我的數據在其層次結構中有多個層次,並且我無法使用kendo中的數據源層次模型正確設置層次結構。部門可能有許多策略,策略可能有很多程序和程序可能有很多項目。所以問題是如何在kendo中設置分層數據源來支持結構化的提及。我願意使用json或xml來獲取數據。 – 2014-09-25 20:08:34
順便說一句,我很抱歉不直接當我第一次發佈「問題」 – 2014-09-25 20:12:22