Asp.net mvc 4 动态添加到表中的行不会获得Dojo样式
我正在使用Dojo在ASP.NETMVC4中工作。我在向html表添加新行时遇到了一个奇怪的问题。我需要有一个表,支持添加和删除行和文本框内应该有dojo风格。我引用了一则博文广告试图创造同样的东西。让我解释一下我的代码。以下是我的看法Asp.net mvc 4 动态添加到表中的行不会获得Dojo样式,asp.net-mvc-4,dojo,Asp.net Mvc 4,Dojo,我正在使用Dojo在ASP.NETMVC4中工作。我在向html表添加新行时遇到了一个奇怪的问题。我需要有一个表,支持添加和删除行和文本框内应该有dojo风格。我引用了一则博文广告试图创造同样的东西。让我解释一下我的代码。以下是我的看法 @section scripts { <script type="text/javascript"> require(["dojo/parser", "dijit/form/TextBox", "dijit/form/Butt
@section scripts {
<script type="text/javascript">
require(["dojo/parser", "dijit/form/TextBox", "dijit/form/Button"]);
</script>
}
<table id="servicesTable">
<tr>
<th>
<label id="lblSelectService">
Select</label>
</th>
<th>
<label id="lblServiceName">
Name</label>
</th>
<th>
<label id="lblTitle">
AE Title</label>
</th>
</tr>
@for (int i = 0; i < Model.Services.Count; i++)
{
@Html.Partial("_ServiceRow", Model.Services[i])
}
</table>
有人能告诉我怎么解决这个问题吗?请注意,我知道Dojo网格的存在。我想利用模型绑定的优势,因此遵循这种风格尝试在添加的节点上运行。您是否也在认真地在页面上加载jquery?不管怎么说,使用您已经得到的代码,选择刚刚添加的节点有点棘手,但是如果您将以下内容放入success方法中,它可能会起作用
var newNodes = $(html).appendTo("#servicesTable tbody");
require(["dojo/parser"], function(parser){
newNodes.forEach(function(node){
parser.parse(node);
});
});
如果在已解析的节点上进行解析,则解析器将抛出错误。此外,如果您需要支持较旧的浏览器,您将希望用标准for循环替换forEach。非常感谢David的回复。你的代码没有完全工作,但我得到的想法,下面的代码是为我工作。请不要觉得我在回答我自己的问题。我希望正确格式化代码,从而使用此视图。再次非常感谢
success: function (html) {
var newNodes = $(html).appendTo("#servicesTable tbody");
require(["dojo/_base/array", "dojo/parser"], function (array, parser) {
array.forEach(newNodes, function (node, i) {
parser.parse(node);
});
});
DavidI提供的更正解决方案(我很高兴我能帮上忙=)在这里有一个解决方案,对于可能遇到相同问题的任何人来说都绝对有效,这也很好
var newNodes = $(html).appendTo("#servicesTable tbody");
require(["dojo/parser"], function(parser){
newNodes.forEach(function(node){
parser.parse(node);
});
});
success: function (html) {
var newNodes = $(html).appendTo("#servicesTable tbody");
require(["dojo/_base/array", "dojo/parser"], function (array, parser) {
array.forEach(newNodes, function (node, i) {
parser.parse(node);
});
});