2016-04-12 2 views
0

Вот мой сценарий:Найти индексной таблицы Строка для Динамически сгенерированной таблицы

У меня есть таблица, которая отображает содержание Имя, Возраст, и информация о каждом ряду. Когда пользователь выбирает кнопку Details, он должен запускать модальный и показывать дополнительный контент, специфичный для этого Лица в таблице.

Выпуск под рукой:

Я использую Razor syntax и динамически генерировать строки в таблице.

Вопрос: Как я могу получить значение индекса строки для этой конкретной строки при выборе кнопки Details

Дополнительные примечания:

Я сделал некоторые исследования в Интернете, но не мог Я не нашел ничего, что помогло мне в моем сценарии.

Html

<div class="col-md-12"> 
    <table class="table table-striped"> 
     <thead> 
     <tr> 
      <th>Name</th> 
      <th>Age</th> 
      <th>Details</th> 
     </tr> 
     </thead> 
     <tbody> 
     @foreach (var viewModel in Model) 
     { 
      <tr> 
       <td>@viewModel.Name</td> 
       <td>@viewModel.Age</td> 
       <td><button onclick="PersonViewModel(this)" type="button" class="btn btn-success" data-toggle="modal" data-target="#details-modal"><span class="fa fa-external-link-square"></span> Details</button></td> 
      </tr> 
     } 
     </tbody> 
    </table> 
</div> 

JavaScript:

function PersonViewModel(x) { 
    $('body').on('click', 'a.showMore', function(event) { 
     var rowIndex = $(this).closest('tr').index(); 
     alert("Row index is: " + rowIndex); 
    }); 
} 
+0

Как 'index' будет полезно? и где находится элемент 'a.showMore'? – Satpal

+0

в чем проблема с кодом сейчас? –

ответ

2

Вы связывании событие в обработчике PersonViewModel щелчка. Чтобы получить индекс родителя tr, вам необходимо использовать объект x.

Использование

function PersonViewModel(x) { 
    var rowIndex = $(x).closest('tr').index(); 
    alert("Row index is: " + rowIndex); 
} 
+0

Это отлично работает, спасибо! – ChaseHardin

1

Вы можете попробовать, как это. Я думаю, это поможет вам.

$(this).parents('tr')).index()

Это даст вам функцию родительского тр и индекс() даст индекс этого тр.

0

Пожалуйста, проверьте мой код вместо вашей

function PersonViewModel(x) { 
    var index = $(".table tr").index($(x).parents('tr')); 
    alert(index); 
}