добавление строк таблицы в существующий заголовок

0

Я использую 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>

}
Теги:
asp.net-mvc-4

2 ответа

1
Лучший ответ

Вам нужно вставить 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>
  • 0
    благодарю вас. Я заметил, что я опустил тег <tbody>. Я также зафиксировал разное количество клеток. К сожалению, если я использую свой оригинальный Jquery с вашими поправками, он все равно не работает. Он помещает содержимое в первую ячейку, я думаю. Интересно, что это сработает, если я добавлю немного html в jquery direct (согласно вашему посту до внесения поправки), но я не думаю, что это будет соответствовать моим выпадающим спискам и бритве @.
  • 0
    Тогда вам нужно показать вывод из претензий / blamkeditorrows - очевидно, что-то не так
Показать ещё 3 комментария
1

Спасибо 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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню