Я использую JQuery, который динамически добавляет строки таблицы.
Я хотел бы, чтобы строка заголовка находилась в статическом HTML (который я добавил), а JQuery просто добавляла на него дополнительные строки. Однако строки никогда не выстраиваются в линию с заголовком, на самом деле все, кажется, входят в первую ячейку строки, а не распространяют входы в правильный столбец.
Это JQuery, добавляющий строку:
$("#addItem").click(function () {
$.ajax({
url: '/Claims/BlankEditorRow',
cache: false,
success: function (html) {
$("#editorRows").append(html);
$('#editorRows .date').datepicker({ dateFormat: "dd/mm/yy" });
}
});
return false;
});
Это частичное дополнение JQuery:
<tr class="editorRow table ">
<td >
@Html.DropDownListFor(model => model.Selecteduserid, new SelectList(Model.users, "UserID", "FirstName"))</td>
<td>
@Html.EditorFor(model => model.MeetingDate)</td>
<td>
@Html.EditorFor(model => model.Hours)</td> <td>
@Html.EditorFor(model => model.MileageCost)</td> <td>
@Html.EditorFor(model => model.TravelCost)</td>
<td>
@Html.EditorFor(model => model.Comments)</td>
<td>
<a href="#" class="deleteRow">delete</a>
</td>
</tr>
И это таблица в представлении добавляется к:
<table id="editorRows" >
<tr >
<th >
Heading1</th>
<th>
Heading2</th>
<th>
Heading3</th> <th>
Heading4</th> <th>
Heading5</th>
<th>
Heading6</th>
<th>
Heading7</th>
<td>
Delete Header
</td>
</tr>
</table>
Спасибо.
редактирует:
Действие:
public PartialViewResult BlankEditorRow()
{
LineViewModel vm = new LineViewModel();
vm.users = getUserList();
vm.categories = getcatList();
vm.MeetingDate = DateTime.Now;
vm.SubCatID = 1;//need to set as not currently required therefore as null allowed, it doesnt put default value in
// vm.users = new List(db.users,"UserID","FirstName");
// ViewBag.SubmissionUserID = new SelectList(db.users,"UserID","FirstName");
return PartialView("NewRow", vm);
}
Полный новый вид строки:
@model authentication.ViewModels.LineViewModel
@using authentication.WebUI.Helpers
@using (Html.BeginCollectionItem("LineViewModels"))
{
<tr class="editorRow table ">
<td >
@Html.DropDownListFor(model => model.Selecteduserid, new SelectList(Model.users, "UserID", "FirstName"))</td>
<td>
Category @Html.DropDownListFor(model => model.Selectedcatid, new SelectList(Model.categories, "CatID", "CatName"))</td>
<td>
@Html.EditorFor(model => model.MeetingDate)</td>
<td>
@Html.EditorFor(model => model.Hours)</td> <td>
@Html.EditorFor(model => model.MileageCost)</td> <td>
@Html.EditorFor(model => model.TravelCost)</td>
<td>
@Html.EditorFor(model => model.Comments)</td>
<td>
<a href="#" class="deleteRow">delete</a>
</td>
</tr>
}
Вам нужно вставить 8 ячеек и изменить свой HTML-код на
<table>
<thead>
<tr>
<th>Heading1</th>
<th>Heading2</th>
<th>Heading3</th>
<th>Heading4</th>
<th>Heading5</th>
<th>Heading6</th>
<th>Heading7</th>
<th>Delete Header</th>
</tr>
</thead>
<tbody id="editorRows"></tbody>
</table>
Спасибо mplungjan за вашу помощь. Я вычислил последний бит, мне пришлось перемещать тег в моем частичном ПЕРЕД последующей строке @using (Html.BeginCollectionItem(LineViewModels)). Это сработало отлично. Следующим образом:
@model authentication.ViewModels.LineViewModel
@using authentication.WebUI.Helpers
<tr class="editorRow table ">
@using (Html.BeginCollectionItem("LineViewModels"))
{
<td >
@Html.DropDownListFor(model => model.Selecteduserid, new SelectList(Model.users, "UserID", "FirstName"))</td>
<td>
Category @Html.DropDownListFor(model => model.Selectedcatid, new SelectList(Model.categories, "CatID", "CatName"))</td>
<td>
@Html.EditorFor(model => model.MeetingDate)</td>
<td>
@Html.EditorFor(model => model.Hours)</td> <td>
@Html.EditorFor(model => model.MileageCost)</td> <td>
@Html.EditorFor(model => model.TravelCost)</td>
<td>
@Html.EditorFor(model => model.Comments)</td>
<td>
<a href="#" class="deleteRow">delete</a>
</td>
}
</tr>