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 grid の存在は認識しています。モデルバインディングを利用したいので、このスタイルに従いたい