Add custom search parameter in jqGrid in Asp.net mvc

I just started working on asp.net mvc and jqgrid.

I have a calendar that returns a date, a multi-select list box and applies a filter button outside the grid. Is there any way to pass these filter values ​​to the server actionresult GridData () based on the selected date and several selected values, and also it is saved during swapping or sorting.

public ActionResult GridData (sidx string, sord string, int? page, int? rows, Collection categoryOptions, string fromDate) {..}

Thank!

+3
source share
2 answers

, postData . , , JSON . , JsonResult.

jqgrid :

postData: {
   startDate: function() { return $('#startDate').val(); },
   anotherFilter: function() { return $('#anotherFilter').val(); }
}

Apply $('# GridName'). trigger ('reloadGrid'). . jquery:

$('#filterName').change(function(){$('#GridName').trigger('reloadGrid');})

JSON jqgrid, :

total = pagedList.PageCount,
page = pagedList.PageNumber,
records = pagedList.TotalItemCount,
rows = pagedList.ToArray()
+5

, postData (. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options) . addJSONData jqGrid setGridParam() trigger ('reloadGrid')?, , , jqGrid.

, jqGrid () . - " " (. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:advanced_searching) . " " - .

URL- :

?

_ = {_ } & = {} & = {} & sidx = {sortIndex} & Sord = {SortDirection} & searchField = {searchField} & SearchString = {SearchString } & searchOper = {searchOper} & = {}

. - JSON ,

filters = 
    {"groupOp":"AND",
     "rules":[
       {"field":"invdate","op":"ge","data":"2007-10-06"},
       {"field":"invdate","op":"le","data":"2007-10-20"}, 
       {"field":"name","op":"bw","data":"Client 3"}
      ]
    }

DataContractJsonSerializer. :

MemoryStream ms = new MemoryStream (Encoding.Unicode.GetBytes (filters));
DataContractJsonSerializer serializer = new DataContractJsonSerializer (typeof(jqGridSearchFilter));
ms.Position = 0;

jqGridSearchFilter searchFilter = (jqGridSearchFilter)serializer.ReadObject (ms);
string groupOp = null;
if (!String.IsNullOrEmpty(searchFilter.groupOp) &&
    String.Compare (searchFilter.groupOp, "AND", StringComparison.Ordinal) == 0)
    groupOp = "AND";
else if (!String.IsNullOrEmpty(searchFilter.groupOp) &&
         String.Compare (searchFilter.groupOp, "OR", StringComparison.Ordinal) == 0)
    groupOp = "OR";
else {
    arSearchStringParameters = null;
    return null;
}
for (int i=0; i "WHERE ".Length)
        sb.Append (groupOp);
    AppendWhere (sb, _search,
        searchFilter.rules[i].field, searchFilter.rules[i].op, searchFilter.rules[i].data,
        arColumnInfos, parameters);
}

internal enum GroupOperation {
    AND,
    OR
}

[DataContract]
internal class jqGridSearchFilterItem {
    [DataMember]
    internal string field = null;
    [DataMember]
    internal string op = null;
    [DataMember]
    internal string data = null;
}

[DataContract]
internal class jqGridSearchFilter {
    [DataMember]
    internal string groupOp = null; //GroupOperation groupOp;

    [DataMember]
    internal List rules = null;
}
+1

Source: https://habr.com/ru/post/1741915/


All Articles