我正在使用 Dojo 在 ASP.Net MVC4 中工作。当我向 html 表添加新行时,我遇到了一个奇怪的问题。我需要一个支持添加和删除行的表格,里面的文本框应该有 dojo 样式。我提到了这篇文章http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/广告试图创造同样的东西。让我解释一下我的代码。下面是我的看法
@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>
我渲染每一行的部分视图如下
@model WebUI.Models.RemDevServiceViewModel
<tr>
<td>
@Html.CheckBoxFor(x => x.IsMarked,
new { id = @String.Format("Service[{0}]IsMarked", @Model.ID) })
</td>
<td>
<input style="width: 100px; id="Service[@Model.ID]Name"
name="Service[@Model.ID].Name" type="text"
data-dojo-type="dijit/form/TextBox" value="@Model.Name"/>
</td>
<td>
<input style="width: 100px;" id="Service[@Model.ID]Title"
data-dojo-type="dijit/form/TextBox"
name="Service[@Model.ID].Title" type="text"
value="@Model.Title" />
</td>
</tr>
我有一个添加按钮,它将向表中添加新行。我面临的问题是,新行没有获得 dojo 样式,它们被呈现为普通文本框。最初加载的行呈现为 dojo 样式的文本框,但新添加的不是这样。我添加新行的 jquery 函数如下所示
function addNewService() {
$.ajax({
url: rootPath + "MyController/AddNewService",
type: "get",
cache: false,
success: function (html) {
$("#servicesTable tbody").append(html);
},
error: function (ts) {
alert("Error while adding services");
}
});
}
谁能告诉我如何解决这个问题?请注意,我知道 Dojo 网格的存在。我想利用模型绑定,因此遵循这种风格