#javascript #bootstrap-4 #asp.net-core-mvc #bootstrap-modal
Вопрос:
Вот как это выглядит, когда я называю всплывающую форму просмотра модальной формой
вот как это выглядит, когда я ввожу результат поиска ввода
пожалуйста, помогите решить эту проблему. Спасибо
Контроллер
в этой форме я использую partialview для вызова модальной формы
ViewData["CurrentFilter"] = SearchString;
var Items = new List<ExpandoObject>();
this.iFA = FA;
this.nSP = SP;
this.iFA2 = FA2;
this.isItems = isItem;
this.nSearch2 = SearchString;
dtBrowse = new DataTable();
if (iFA2==0)
{
dtBrowse = RefreshData(true);
}
else
{
dtBrowse = RefreshData(false, iFA2, TxtCategory,SearchString);
}
int i = 0;
nSP = SP;
ViewBag.iFA2 = FA2;
ViewBag.Category = AddItemToComboBox(dtBrowse);
isItems = isItem;
nSearch2 = SearchString;
return PartialView("_BrowsePartial",dtBrowse);
Вид
@using System.Reflection
@using System.Data
@model DataTable
<form asp-action="BrowseTrans" method="get">
<div class="modal modal-blur fade" id="modal-team" tabindex="-1" role="document" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered" role="form">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Browse</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="row mb-3 align-items-end">
<div class="col col-4 input-icon">
<input type="text" value="@ViewData["CurrentFilter"]" class="form-control" name="SearchString" placeholder="Search…">
<span class="input-icon-addon">
<!-- Download SVG icon from http://tabler-icons.io/i/search -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><circle cx="10" cy="10" r="7" /><line x1="21" y1="21" x2="15" y2="15" /></svg>
</span>
</div>
<div class="col col-2">
<label class="form-label">By Category</label>
</div>
<div class="col form-group">
<select id="ddlCurr" asp-items="@(new SelectList(ViewBag.Category, "Category", "Category"))" name="TxtCategory" class="form-control">
</select>
<span class="text-danger"></span>
</div>
</div>
<div class="row mb-3 align-items-end">
<div class="table-responsive" role="grid">
<table class="table table-vcenter card-table" style="table-layout: auto; display: block; height: 350px;">
<thead>
<tr>
</tr>
<tr>
@for (int c = 0; c < Model.Columns.Count; c )
{
<th class="w-1">@Model.Columns[c].Caption</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow dr1 in Model.Rows)
{
<tr>
@for (int c = 0; c < Model.Columns.Count; c )
{
if (c == 0)
{
<td>
<div class="d-flex py-2 align-items-sm-baseline">
<div class="flex-fill">
<div><a href="#" class="text-reset" style="font-size: 12px;">@dr1[c].ToString()</a></div>
</div>
</div>
</td>
}
else
{
<td>
<div class="d-flex py-2 align-items-sm-baseline">
<div class="flex-fill">
<div class="text-muted"><a class="text-reset" style="font-size: 10px;">@dr1[c].ToString()</a></div>
</div>
</div>
</td>
}
}
</tr>
}
</tbody>
</table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn me-auto" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" data-bs-dismiss="modal">Add Team</button>
</div>
</div>
</div>
</div>
</form>
Язык JavaScript
это скрипт функции javascript при вызове модальной формы
$(function () {
var PlaceHolderElement = $('#PlaceHolderHere');
$('button[data-toogle="ajax-modal"]').click(function (event) {
var url = $(this).data('url');
$.get(url).done(function (data) {
PlaceHolderElement.html(data);
PlaceHolderElement.find('.modal').modal('show');
})
})
PlaceHolderElement.on('click', '[data-save="modal"]', function (event) {
var form = $(this).parents('.modal').find('form');
var actionUrl = form.attr('action');
var sendData = form.serialize();
$.post(actionUrl, sendData).done(function (data) {
PlaceHolderElement.find('.modal').modal('hide');
location.reload();
})
})
})
Ответ №1:
Вы можете попытаться удалить <form asp-action="BrowseTrans" method="get">
и добавить идентификатор для ввода поиска <input type="text" class="form-control" id="SearchString" name="SearchString" placeholder="Search…">
.Затем при нажатии клавиши enter передайте данные поиска и получите данные с помощью ajax.Затем замените данные на <tbody</tbody>
данные в ajax success
. js:
var element = document.getElementById('SearchString');
element.addEventListener("keyup", function (event) {
if (event.keyCode === 13) {
search()
}
});
function search() {
$.ajax({
type: "GET",
url: 'BrowseTrans?SearchString=' $("#SearchString").val() "amp;amp;TxtCategory=" $("#ddlCurr").val(),
success: function (data) {
//get data from action here
//replace html in <tbody> with data
},
error: function (result) {
alert("error occured");
}
});
}