Я хочу создать текстовое поле для поиска значений внутри сетки. Когда я набираю текст в текстовом поле, сетка будет автоматически обновляться, показывая значения, соответствующие тому, что я набрал, без необходимости нажатия кнопки или ввода. Как я могу это сделать? Это мои три Textboxes в Index.cshtml файле:Asp.net mvc сетка автоматически получает обновленную базу при вводе значения в текстовое поле
<div class="col-md-3">
<div class="efield awe-il">@Html.Awe().TextBox("txtVINnumber").Placeholder("Find VIN number").CssClass("searchtxt") </div>
</div>
<div class="col-md-3">
<div class="efield awe-il">@Html.Awe().TextBox("txtEngineVINnumber").Placeholder("Find Engine VIN number").CssClass("searchtxt") </div>
</div>
<div class="col-md-3">
<div class="efield awe-il">@Html.Awe().TextBox("txtGoukinumber").Placeholder("Find Gouki number").CssClass("searchtxt") </div>
</div>
И это мой метод действия:
public ActionResult GetItems(GridParams g, int? atdid, bool? showDeleted, string vinNumber, string engineVinNumber, string goukiNumber)
{
vinNumber = (vinNumber ?? "").ToLower();
engineVinNumber = (engineVinNumber ?? "").ToLower();
goukiNumber = (goukiNumber ?? "").ToLower();
IQueryable<VehicleRecord> query = _context.VehicleRecords.Where(o => o.VinNumber.ToLower().Contains(vinNumber) && o.EngineVin.ToLower().Contains(engineVinNumber) && o.GoukiNumber.ToLower().Contains(goukiNumber)).AsQueryable().Include(p => p.Spot).Include(l => l.VehicleLocation);
int id = Convert.ToInt32(g.Key);
if (showDeleted.HasValue)
{
query = query.Where(p => p.IsDeleted == showDeleted.Value);
}
if (!vinNumber.IsEmpty())
{
query = query.Where(o => o.VinNumber.Equals(vinNumber));
}
return Json(new GridModelBuilder<VehicleRecord>(query, g)
{
Key = "Id",// needed for Entity Framework | nesting | tree
Map = o => new
{
o.Id,
o.VinNumber,
o.EngineVin,
o.GoukiNumber,
Position = string.Format("{0} - spot # {1}", o.VehicleLocation.Name, o.Spot.SpotNumber),
o.IsDeleted
}
,
GetItem =
() => query.FirstOrDefault(x => x.Id == id)
}
.Build());
}
}
Edit: Это то, что я сделал до сих пор
Одна из двух вещей приходит на ум. используйте запрос Ajax, который возвращает HTML для строк, которые соответствуют, или найти плагин jQuery, и JavaScript выполняет фильтрацию. что ты уже испробовал? –
Пока я могу напечатать текст в текстовом поле и нажать enter. Сетка будет обновлена, но я хочу, чтобы сетка обновлялась во время ввода. То, что вы упомянули, звучит знакомо, но можете ли вы быть более конкретным? –