Как реализовать поиск на jqgrid?

Да - вы можете использовать функцию «CurrentUser» в вашем запросе. Здесь я включил его как поле и критерии.

SELECT Field1, Field2, [CurrentUser] AS UserName FROM Table1 WHERE Field1 = [CurrentUser];
29
задан Edward Tanguay 13 January 2009 в 11:15
поделиться

5 ответов

Я недавно реализовал это сам (фактически вчера) впервые. Самым большим препятствием для меня было выяснить, как написать функцию контроллера. Подпись функции - вот что мне потребовалось больше всего времени (обратите внимание на параметры _search, searchField, searchOper и searchString, которые отсутствуют в большинстве примеров asp.net mvc, которые я видел). Javascript отправляет сообщения в контроллер как для начальной загрузки, так и для поискового вызова. В коде вы увидите, что я проверяю, является ли параметр _search истинным или нет.

Ниже приведен контроллер и код JavaScript. Приношу свои извинения за любые проблемы с форматированием, поскольку я впервые публикую здесь.

public ActionResult GetAppGroups(string sidx, string sord, int page, int rows, bool _search, string searchField, string searchOper, string searchString)
{
    List<AppGroup> groups = service.GetAppGroups();
    List<AppGroup> results;
    if (_search)
       results = groups.Where(x => x.Name.Contains(searchString)).ToList();
    else
       results = groups.Skip(page * rows).Take(rows).ToList();

    int i = 1;

    var jsonData = new
    {
        total = groups.Count / 20,
        page = page,
        records = groups.Count,
        rows = (
            from appgroup in results
            select new
            {
                i = i++,
                cell = new string[] {
                         appgroup.Name,
                         appgroup.Description
                     }
            }).ToArray()
    };

    return Json(jsonData);
}

А вот мой HTML / Javascript:

$(document).ready(function() {
  $("#listGroups").jqGrid({
    url: '<%= ResolveUrl("~/JSON/GetAppGroups/") %>',
    datatype: 'json',
    mtype: 'GET',
    caption: 'App Groups',
    colNames: ['Name', 'Description'],
    colModel: [
        { name: 'Name', index: 'Name', width: 250, resizable: true, editable: false},
        { name: 'Description', index: 'Description', width: 650, resizable: true, editable: false},
    ],
    loadtext: 'Loading Unix App Groups...',
    multiselect: true,
    pager: $("#pager"),
    rowNum: 10,
    rowList: [5,10,20,50],
    sortname: 'ID',
    sortorder: 'desc',
    viewrecords: true,
    imgpath: '../scripts/jqgrid/themes/basic/images'
//});
}).navGrid('#pager', {search:true, edit: false, add:false, del:false, searchtext:"Search"});
40
ответ дан 28 November 2019 в 01:24
поделиться

Просто следуйте эта ссылка . Это имеет все объясненные реализации...

Вы можете создать кнопку searchBtn и можете вызвать поисковую форму по щелчку

$("#searchBtn").click(function(){
   jQuery("#list4").searchGrid(
   {options}
    )});
-2
ответ дан Sandeep Kushwah 14 October 2019 в 07:57
поделиться

@Alan - хорошо, я использовал ваш метод и расширил свой веб-сервис, чтобы ожидать эти дополнительные три параметра и проверить на наличие _search "это правда / ложь. Но чтобы сделать это, мне пришлось добавить это к моему вызову ajax в JavaScript:

if (!postdata._search) {    
           jQuery("#mygrid").appendPostData( {searchField:'', searchOper:'', searchString:''});  
}
-1
ответ дан 28 November 2019 в 01:24
поделиться

Если вы все еще не знаете, как работать с необязательными параметрами, просто объявите их как обнуляемые, добавив ? после имени типа.

Теперь вы можете иметь возможность сравнить их с null , чтобы проверить, отсутствуют ли они.

Обратите внимание, что вам не нужно делать это со строками, поскольку они уже допускают значение NULL.

2
ответ дан 28 November 2019 в 01:24
поделиться

См. Мою статью о codeproject, в которой объясняется, как мы можем выполнять множественный поиск в jqgrid:

Использование панели инструментов поиска jqGrid с несколькими фильтрами в ASP.NET MVC

Я использую IModelBinder для привязки настроек сетки, деревьев выражений для сортировки и фильтрации данных.

19
ответ дан 28 November 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: