1
正如標題所說,我不能讓圖形顯示在我的asp.NET頁面上的「MainContent」佔位符內。如果我將選擇從「MainContent」更改爲「body」,則圖形確實顯示在頁面的底部。d3.js圖形不在asp.net頁面上顯示
代碼片斷:
變種W = 960, H = 500, R = 30, 填充= d3.scale.category20();
var force = d3.layout.force() .charge(-120) .linkDistance(60) .size([w, h]); var svg = d3.select("body").append("svg:svg") .attr("width", w) .attr("height", h); d3.json("graph.json", function (json) { var link = svg.selectAll("line") .data(json.links) .enter().append("svg:line"); var node = svg.selectAll("g myCircleText") .data(json.nodes) var elemEnter = node.enter() .append("g") elemEnter.append("text") //.attr("dx", function (d) { return -20 }) .text(function (d) { return d.name }) var circle = elemEnter.append("circle") .attr("r", r) .style("fill", function (d) { return fill(d.group); }) .style("stroke", function (d) { return d3.rgb(fill(d.group)).darker(); }) .call(force.drag); force .nodes(json.nodes) .links(json.links) .on("tick", tick) .start(); function tick(e) { // Push sources up and targets down to form a weak tree. var k = 6 * e.alpha; json.links.forEach(function (d, i) { d.source.y -= k; d.target.y += k; }); circle.attr("cx", function (d) { return d.x; }) .attr("cy", function (d) { return d.y; }); link.attr("x1", function (d) { return d.source.x; }) .attr("y1", function (d) { return d.source.y; }) .attr("x2", function (d) { return d.target.x; }) .attr("y2", function (d) { return d.target.y; }); } });`
我不能讓文字到多媒體每個節點上,我已經做了相當多的搜索,但還沒有解決任何問題。
更新: 我設法讓文本顯示在我的圖表中。但是文本不會顯示在圓圈內,而是顯示在svg容器的左上角。我已經更新了代碼片段以反映這一點。
UPDATE 2: 我現在將圖顯示在正確的位置。解決方案與將腳本放入div中一樣簡單,然後在腳本中選擇div。我仍然沒有想出如何在一個圓圈內顯示文本。
儘量提供一個最小的節點,你在做什麼工作的代碼。請告訴我們爲什麼你認爲這與ASP鏈接(它不應該,D3.js是純粹的前端) – AsTeR
上述代碼正在工作,但不顯示圖形,除非我將選定的d3區域更改爲「正文」 。林不知道這個問題是與asp相關的,但我沒有看到任何理由爲什麼它不會在內容佔位符中顯示。 – Cathal
你能告訴我們ASP生成的HTML嗎? –