內加載在我看來,我必須把一些渲染部分頁面動態地在一個表(在發票如:產品線)加行ASP.NET MVC局部視圖不相同的觀點
要添加第表我都遵循: http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/
我按照鏈接中的指示,但我的主視圖看起來是這樣的:
<table id="editorRows" style="width: 100%;">
<tr>
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
</tr>
@foreach (var item in Model.Entity.ListPlans)
{
Html.RenderPartial("PlanEditorRow", item);
}
</table>
<b><i>@Html.ActionLink("Add another plan...", "BlankPlanEditorRow", null, new { id = "addItem" })</i></b>
局部視圖(PlanEditorRow)是:
@model Project.Models.Plan
@using Project.Helpers
<tr class="editorRow">
@using (Html.BeginCollectionItem("assignedPlans"))
{
<td>
@Html.EditorFor(x => x.Data1)
</td>
<td>
@Html.EditorFor(x => x.Data2)
</td>
<td>
@Html.EditorFor(x => x.Data3)
</td>
<td>
<a href="#" class="deleteRow">delete</a>
</td>
}
</tr>
我使用與上面鏈接相同的javascript。單擊添加計劃鏈接時,表格中的計劃編輯器行將在表單中的相同主視圖上正確添加。
但是,當我添加一個類似的第二個表如。改變了renderpartial配置的產品,並且點擊添加鏈接,編輯器行被加載到一個新的頁面上(即僅局部視圖,主視圖不見了)。 我使用了第一個表和相同JS的相同ID和類。
我猜HTML元素ID不能相同,如果是的話我該如何解決它?
如何確保窗體中的任意數量的類似表格,在動態行添加方面與第一個表格一樣正確地起作用?
@克里斯普拉特,我已經使用這個:
$("#addItem").click(function() {
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#editorRows").append(html); }
});
return false;
});
$("a.deleteRow").live("click", function() {
$(this).parents("tr.editorRow:first").remove();
return false;
});
不知道這是否你的意思請求部分在通過AJAX添加HTML是什麼?
好的,我已經添加了JS顯示我認爲你的意思...請讓我知道,否則 – Qwerty