Как передать конкретные данные из веб-сетки в MVC Controller с помощью Javascript? - PullRequest
2 голосов
/ 08 мая 2019

Я пытаюсь удалить определенную строку в моей таблице веб-сетки, используя Javascript и Entity Framework.Это то, что я получил до сих пор:

enter image description here

Представление веб-сетки работает, в конце я добавил тег (красный крест) для удаления этогоконкретный ряд.

HTML:

<div class="row">
        <div class="col-lg-12 d-flex align-items-stretch">
            @grid.Table(tableStyle: "table table-responsive table-striped table-bordered",
                columns: grid.Columns(
                  grid.Column(columnName: "ApiRedirectID", header: "ID", format:@<text><div class="edit" data-id="@item.ApiRedirectID" data-propertyname="ApiRedirectID">@item.ApiRedirectID</div></text>),
                  grid.Column(columnName: "ApiName", header: "Name", format:@<text><div class="edit" data-id="@item.ApiRedirectID" data-propertyname="ApiName">@item.ApiName</div></text>),
                  grid.Column(columnName: "CompanyID", header: "Company ID", format:@<text><div class="edit" data-id="@item.ApiRedirectID" data-propertyname="CompanyID">@item.CompanyID</div></text>),
                  grid.Column(columnName: "Company.CompanyName", header: "Company Name", format:@<text><div class="edit" data-id="@item.ApiRedirectID" data-propertyname="Company.CompanyName">@item.Company.CompanyName</div></text>),
                  grid.Column(columnName: "ApiURL2", header: "URL", format:@<text><div class="edit" data-id="@item.ApiRedirectID" data-propertyname="ApiURL2">@item.ApiURL2</div></text>),
                  grid.Column(columnName: "Delete", header: " ", format:@<a href="#" class="display delete-btn"><span class="glyphicon glyphicon-remove" style="color:red;"></span></a>)
          )
     )

        </div>
        <div class="col-lg-12 d-flex align-items-stretch">
            @grid.PagerList(mode: WebGridPagerModes.All, paginationStyle: "pagination pagination-small pagination-right")
        </div>
</div>

Javascript (то, что я до сих пор придумал):

 $('.delete-btn').on("click", function () {

       //how to get specific row id here and pass it to my controller?     
 })

Я пытаюсь добиться того, чтобы передать ApiRedirectIDстроки, которую я хочу удалить в Javascript, а затем в мой MVC Controller.

Надеюсь, кто-то может помочь!

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Предполагая, что каждая строка является <tr>, вы можете сделать что-то вроде.

$('.delete-btn').on("click", "body", function () {
        var $row = $(this).closest('tr');
        var rowid = $row.find('[data-propertyname="ApiRedirectID"]');
        $.ajax({
          method: "POST",
          url: "controller/deleterow",
          data: { id: rowid }
        })
          .done(function( msg ) {
            alert( "Row Deleted!" );
      });
 });
1 голос
/ 08 мая 2019

Изменить эту строку создайте тег привязки для передачи идентификатора, и лучше всего будет добавить идентификатор каждого с тегом привязки, и вы попадете в контроллер напрямую

(** В вашем случае @ item.Id, из которого вы можете найти запись и удалить ее ) **

к контроллеру, поэтому на стороне контроллера вы получите идентификатор для его удаления из БД.

grid.Column(columnName: "Delete", header: " ", format:@<a href="Controller/action/id" class="display delete-btn"><span class="glyphicon glyphicon-remove" style="color:red;"></span></a>)
...