Forum


18:03

05/10/2010

Hi Friends:
I have a little problem with my JQGrid. When I try to do a search searchOptions.searchField comes "Undefined"
Here is my code, What I'm doing wrong??
Grid
$('#grig').jqGrid(
{
jsonReader: //Set the jsonReader to the JQGridJSonResponse squema to bind the data.
{
root: "Items", //array containing actual data
page: "CurrentPage", //current page
total: "PageCount", //total pages for the query
records: "RecordCount", //total number of records
repeatitems: false,
cell: "",
id: 'RowNumber' //Indice o Nombre de la columna que es PK
},
hidegrid: false,
colNames: ['dd 1', 'dd 2', 'dd 3', 'dd 4', 'dd 4', 'dd 5', 'dd 6', 'dd 7', 'dd 8', 'dd 9', 'dd 10', 'dd 11','dd 12','dd 13','Modificar','Eliminar'],
colModel: [
{ name: 'RowNumber', editable: false, search:false, hidden: true, align:'center'},
{ name: 'dd1', editable: false, search:false, hidden: true, align:'center'},
{ name: 'dd2', editable: false, search:false, hidden: true, align:'center'},
{ name: 'dd3', editable: false, search:false, hidden: true, align:'center'},
{ name: 'dd4', editable: false, search:false, hidden: true, align:'center'},
{ name: 'dd5', editable: false, search:false, hidden: true, align:'center'},
{ name: 'dd6', editable: false, search:false, hidden: true, align:'center'},
{ name: 'dd7', editable: false, search:false, hidden: true, align:'center'},
{ name: 'dd8', align:'center', searchoptions:{sopt: ['eq']}},
{ name: 'dd9', align:'center', searchoptions:{sopt: ['eq']}},
{ name: 'dd10', align:'center', searchoptions:{sopt: ['eq']}},
{ name: 'dd11', align:'center', searchoptions:{sopt: ['eq']}},
{ name: 'dd12', align:'center', searchoptions:{sopt: ['eq']}},
{ name: 'dd13', align:'left' , searchoptions:{sopt: ['eq']}},
{ name: 'Edi', width: 50, /*label: 'Modificar',*/ align: 'center', formatter:agregarModificar },
{ name: 'del', width: 50, /*label: 'Eliminar',*/ align: 'center', formatter:agregarEliminar }
],
loadtext: 'Cargando datos...', //Texto de Carga
loadui: 'block',
recordtext: "{0} - {1} de {2} Sitios",
emptyrecords: 'No hay datos para mostrar', //Texto cuando no hay registros para mostrar
//pgtext: 'Pág: {0} de {1}', //Paging input control text format.
pgButton:true,
pgbuttons: true,
pginput: true,
viewrecords: true,
multiselect: false,
rowNum: -1, /*lista todas las filas del resultado*/
loadonce: true,
mtype: "POST",
rownumWidth: 40,
gridview: true,
pager: '#paginador',
sortname: 'RowNumber',
viewrecords: true,
sortorder: "asc",
caption: "Listado",
width: ancho - 30,
height: alto - 160,
onSelectRow: function(ID) {
flagEdicionSitio = false;
iRowNumber = $("#grig").getCell(ID, 0);
iCod_SitioCliente = $("#grig").getCell(ID, 1);
iId_Cliente = $("#grig").getCell(ID, 2);
iId_ClienteInterno = $("#grig").getCell(ID, 3);
iLatitud = $("#grig").getCell(ID, 4).replace(',','.');
iLongitud = $("#grig").getCell(ID, 5).replace(',','.');
iPoligono = $("#grig").getCell(ID, 6);
iCod_TipoSitioCliente = $("#grig").getCell(ID, 7);
iNomTipoSitioCliente = $("#grig").getCell(ID, 8);
iCod_RefSitioCliente = $("#grig").getCell(ID, 9);
iNomSitioCliente = $("#grig").getCell(ID, 10);
iDirSitioCliente = $("#grig").getCell(ID, 11);
iRadio = $("#grig").getCell(ID, 12);
iInformacionAdicional = $("#grig").getCell(ID, 13);
ShowSomething();
},
datatype: function() { lsiSomething(); }
}).navGrid('#paginador', { del: false, add: false, edit: false, search: true, refresh: true },{}, // default settings for edit
{}, // default settings for add
{}, // delete instead that del:false we need this
{ multipleSearch: false }, // search options
{});
jQuery("#grig").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true });
Post
var _search = $("#grig").getGridParam("search");
var searchOptions;
var searchField;
var searchOper;
var searchString;
if (_search == true) {
//Obtiene los parámetros de busqueda en caso de que la variable _search sea true
searchOptions = $("#grig").getPostData();
try{
searchField = searchOptions.searchField; // This Field comes Undefined
searchOper = searchOptions.searchOper;
searchString = searchOptions.searchString;
var limpia = "{\"PageCount\": 0, \"CurrentPage\": 1, \"RecordCount\": 0}";
var limpia = "{\"PageCount\": 0, \"CurrentPage\": 1, \"RecordCount\": 0}";
var json = eval("(" + limpia + ")");
var thegrid = $("#grig")[0];
}catch(ex){
}
Thanks for your Help!!!!
17:06

03/01/2012

Hi,
Not sure if you are still looking for an answer to this, but just in case, this is how I got this working:
You need to create a second array for the items you want to appear in the dropdown, then assign that array to the value of the sortoptions. For example, I have an array called myData, which contains all the data for the grid. After populating this, but before I draw the grid itself, I create another array like so:
var domains = ':;';
for (var i = 0; i <= mydata.length - 1; i++) {
if (domains.indexOf(mydata[i].DomainName + ':') == -1) {
domains += mydata[i].DomainName + ':' + mydata[i].DomainName + ';';
}
}
domains = domains.substring(0, domains.length - 1); // this just clears the trailing ";"
then, in the colModel, I use this for the Domain Name row:
{ name: 'DomainName', label: 'Domain Name', width: 60, editable: false, edittype: 'select', editoptions: { value: domains }, stype: 'select', searchoptions: { sopt: ['eq'], value: domains} },
This may not be the cleanest way to achieve this, so I would be interested to know if there's a better way, but this does work...
Most Users Ever Online: 715
Currently Online:
91 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
OlegK: 1255
markw65: 179
kobruleht: 144
phicarre: 132
YamilBracho: 124
Renso: 118
Member Stats:
Guest Posters: 447
Members: 11373
Moderators: 2
Admins: 1
Forum Stats:
Groups: 1
Forums: 8
Topics: 10592
Posts: 31289
Newest Members:
, razia, Prankie, psky, praveen neelam, greg.valainis@pa-tech.comModerators: tony: 7721, Rumen[Trirand]: 81
Administrators: admin: 66