Передача итерационных данных от кнопки к модальному в бритве - PullRequest
0 голосов
/ 18 октября 2019

У меня есть страница просмотра бритвы, где я перебираю свой список и отображаю его в таблице строка за строкой. В каждой строке есть кнопка для отправки информации, хранящейся в специальной строке, по почте, но кнопка сама по себе не запускает операцию отправки почты. Он открывает модальное окно и просит пользователя продолжить процесс или нет. После этого кнопка внутри модала будет вызывать javascript метод отправки почты. Вот мой цикл;

@foreach (var file in Model.ExcelLogListPaged)
                {
                    <tr>
                        <td class="">@file.ID</td>
                        <td>@file.UploadedDate</td>
                        <td><button class="btn btn-info btn-lg" type="button"  data-toggle ="modal" data-target="#warningModal" id="sendMailButton_@file.ID">Send Mail</button></td>
                    </tr>
                } 

А вот мой модальный код:

div id="warningModal" class="modal fade" role="dialog" style="z-index:9999;">
    <div class="modal-dialog">

        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Are you sure?</h4>
            </div>

            <div class="modal-body">
                <p>Are you sure to send the mail manually?</p>
            </div>

            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button type="button" class="btn btn-success" data-dismiss="modal">Send</button>
            </div>
        </div>
    </div>
</div>

Как я уже говорил, у меня есть метод javascript SendMail(), который отвечает за отправку почты. Я хочу вызвать его через кнопку модала, поэтому мне нужно назначить его через атрибут onclick. Однако этому методу нужен параметр, и этот параметр должен быть передан через кнопку вызова модального устройства. Чтобы быть более конкретным, я хочу передать данные @file.ID из цикла в мой модал, а затем использовать их для присвоения onclick атрибута кнопки отправки модала, такой как SendMail(@file.ID). Как я могу это сделать? Заранее спасибо.

1 Ответ

0 голосов
/ 18 октября 2019

добавить атрибут fileid к кнопке в цикле, и любой класс css скажет «file»

@foreach (var file in Model.ExcelLogListPaged)
            {
                <tr>
                    <td class="">@file.ID</td>
                    <td>@file.UploadedDate</td>
                    <td><button fileid="@file.ID" class="btn btn-info btn-lg" type="button"  data-toggle 
        ="modal" class="file" data-target="#warningModal" id="sendMailButton_@file.ID">Send Mail</button></td>
                </tr>
            }

, затем добавить скрытое поле в модальном всплывающем окне

     div id="warningModal" class="modal fade" role="dialog" style="z-index:9999;">
<div class="modal-dialog">

    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Are you sure?</h4>
        </div>

        <div class="modal-body">
            <p>Are you sure to send the mail manually?</p>
        </div>

        <div class="modal-footer">
            <button type="button" class="btn btn-default" data- 
             dismiss="modal">Close</button>
            <button type="button" class="btn btn-success" data- 
             dismiss="modal">Send</button>
              <input type="hidden" id="hdnselectedfield" /> 
           </div>
         </div>
      </div>
  </div>

добавить ниже скрипт

<script>
 $(".file").on("click",function(){
    $("#hdnselectedfield").val($(this).val()))
  })

 </script>

вы получите файл в скрытом поле, которое вы можете отправить через

   SendMail($("#hdnselectedfield").val())
...