Ich versuche, Inhalte in einem Dojo-Inhaltsbereich in einem bestimmten HTML-Tag zu laden und nicht den gesamten Inhaltsbereich zu ersetzen. Die HTML-Datei, die ich lade, enthält ein markupdefiniertes Widget, das beim Laden der neuen Zeile gerendert werden soll.Dojo und Ajax - Widgets zum Rendern
Also, ich habe eine Tabelle, die dynamisch über Ajax gefüllt wird, das heißt:
<body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js"
djConfig="parseOnLoad: true, isDebug:true"></script>
<div id="table-pane" dojoType="dijit.layout.ContentPane">
<table class="test">
<tbody>
<tr><td>Name</td><td>Year</td><td>Age</td></tr>
<tr>
<td><span dojoType="dijit.InlineEditBox" editor="dijit.form.Textarea">Mike</span>
</td>
<td>2010</td>
<td>12</td>
</tr>
</tbody>
</table>
</div>
</body>
<script>
var html ='<tr><td><span dojoType="dijit.InlineEditBox" editor="dijit.form.Textarea">John</span></td><td>2011</td><td>22</td></tr>';
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.InlineEditBox");
dojo.require("dijit.form.Textarea");
dojo.addOnLoad(function(){
pane = dijit.byId("table-pane");
add_elem();
});
function add_elem(){
var node = $(".test tr:last");
node.after(html);
dojo.addOnLoad(function(){
//Here I want to initiate any widgets that haven't been initiated
pane.buildRendering();
});
}</script>
Wie mache ich den Dojo-Widget in der neuen Tabellenzeile?
Ich hatte Probleme mit der Verwendung von dojo.parser.parse(). Als ich die Funktion mehrmals anrief, versuchte sie, neue textAreas mit Widget-IDs zu instanziieren, die bereits auf der Seite verwendet wurden. –
Sieht so aus, als ob mein Problem darin bestünde, dass der Selektor ein Widget, das bereits zum Rendern gerendert wurde, falsch auswählt. –