Giter Site home page Giter Site logo

jqgrid's Introduction

jqGrid

jQuery grid plugin

jqGrid is an Ajax-enabled JavaScript control that provides solutions for representing and manipulating tabular data on the web. Since the grid is a client-side solution, loading data dynamically through Ajax callbacks, it can be integrated with any server-side technology, including PHP, ASP, Java Servlets, JSP, ColdFusion, and Perl.

jqgrid's People

Contributors

amirulali avatar andersonpimentel avatar brain90 avatar claytonsilva avatar davec avatar dvdotsenko avatar ericsmekens avatar erikn69 avatar flack avatar fpape avatar henryyan avatar ichrisj avatar jackysee avatar johanan-round avatar justinethier avatar kirilvit avatar kunalkumar avatar laurentgoncalves avatar lukasz-schab avatar meh-uk avatar msajko avatar nandyjoshu avatar nemo3000 avatar olegki avatar pro85 avatar ralphbean avatar rohitggarg avatar scottwoodall avatar tonytomov avatar tpeczek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jqgrid's Issues

methods in post module doesn't support chaining

Following will not work:
jQuery('#grid').jqGrid("setPostDataItem","includePast", 1).trigger("reloadGrid");

This functions does not support chaining:
setPostData
appendPostData
setPostDataItem
removePostDataItem

Problem with search-groupOps in Turkish translation

Line 22 at file grid.locale-tr.js should be:
groupOps: [ { op: "AND", text: "tüm" }, { op: "OR", text: "herhangi" } ],
which is currently:
groupOps: [ { op: "VE", text: "tüm" }, { op: "VEYA", text: "herhangi" } ],
That causes wrong SQL queries due to wrong operators.

Edit Form generates "url not set" error before importing ajaxEditOptions

Was playing around with Form Editing and found what I think is a bug.

I am trying to use generic ajaxEditOptions (with serialization callback code injecting extra data into postdata) for all of my Edit Forms. (It is easier this way to create multiple instances of grid for me.)

I am not populating "url" (or "editurl") property of the grid at all. I wanted to use one and the same url and options as taken from a "shared" ajaxEditOptions. But as per last commit sha: 17c4749 grid's Edit Form code presents an error complaining about unset URL before it imports settings from ajaxEditOptions.

Lines 859-861 (grid.formedit.js) trigger an "URL is not set" error, before $.jgrid.ajaxOptions and rp_ge.ajaxEditOptions are merged into the ajax properties.

MultipleSearch throws javascript error when prototype.js present

I have an application with used both prototype.js and jquery. I have"$j = jQuery.noConflict();" to prevent any conflicts. All aspects of jQuery and jqGrid work perfectly with one notable exception. If you bring up the multiplesearch dialog and click "find" or "reset" an error is thrown:
"this._each is not a function" on line 617 of prototype.js version 1.6.0.3 on line 617.

So somehow we have managed to get diverted into the prototype.js code while processing the reset or find functionality.

I have installed jqGrid version 3.7.1 because it mentions fixes for compatibility with other JS libs but sadly this problem persists. I would like to remove prototype.js but at the moment it is not practical since there is far too much code still relying on it.

Hopefully you would be able to repeat this error just by including prototype.js and using the "noConflict" function as I have done.

Patch to fix multiple gridDnD calls on the same grid

Hi,
in my app I create grids (with jqGrids) on demand and everything works fine, but if I want to call more than once jqGrid('gridDnD', {…}) on the same grid to update target grids via connectWith parameter, new target grids are not correctly identified.
Another issue is in the drop.accept function that causes conflicts with extern draggable/droppable calls.

Here's the patch
http://ardoino.com/pub/patches/jqGrid.patch

Paolo

unable to load json string into grid in IE8

Hi tony,

Need some help on jqgrid I am very new to it .
I have the json string loading into the jqgrid.
I am able to render data in the grid in firefox, IE 7 . But for IE 8 it gives undefined error .
Any inputs will be helpful.
thanks in advance

gridResize option prevents full hiddengrid, hidegrid functionality

Hi.

Enabling 'gridResize' (which is an awesome feature) "breaks" 'hidegrid' functionality (minimize / maximize button on right in caption bar). The contents of the grid are rolled up, but frame remains in place and is not resized, leaving an empty rectangle on the page.

Hope this one is looked at, because both features are great to have for pages that have multiple instances of jqGrid.

Daniel.

beforeSubmit doesn't seem to fire

Good Day Tony, I'm looking to validate the contents of a form's data before it is submit via the following code:
jQuery("#case_suspensions").navGrid('#pager10', {edit:true,add:true,del:true,search:false},
{beforeSubmit: function(postdata,formid){
return[false,"test here",""];}
});

This "pager" is attached to the following grid, but I'm not getting the beforeSubmit event to trigger, any ideas? I am using version 3.6.
Thxs in advance for any help.

jQuery("#case_suspensions").jqGrid({
url:'sched_discipline_suspensions.php?case_no='+document.getElementById("hold_case").innerHTML,
datatype: 'xml',
mtype: 'POST',
sortable: true,
colNames:['Game #','From Date','To Date','Life Time'],
colModel:[
{name:'game_no',index:'game_no',width:130,sortable:true,align:"left",editable: true,editrules:{custom:true,custom_func:IsNumeric}},
{name:'datefrom',index:'datefrom',width:150,editable: true,editoptions:{size:12, dataInit:function(element){
$(element).datepicker({dateFormat:'yy-mm-dd'});}}},
{name:'dateto',index:'dateto',width:150,
editable: true,editoptions:{size:12, dataInit:function(element){
$(element).datepicker({dateFormat:'yy-mm-dd'});}}},
{name:'lifetime',index:'lifetime',width:100,sortable:true,editable:true,edittype:"select",editoptions:{value:},align:"center"},
],
pager: jQuery('#pager10'),
rowNum:10,
multiselect:false,
height: "100%",
viewrecords: true,
caption:'Suspensions Assigned',
cellEdit: true,
editurl:'sched_case_suspension_add.php?case_no='+document.getElementById("hold_case").innerHTML,
cellsubmit: 'clientArray',
beforeSubmitCell : function(id,name,val,iRow){
if($("#case_suspensions").getCell(id,1) > $("#case_suspensions").getCell(id,2) && $("#case_suspensions").getCell(id,2) != '0000-00-00'){
alert("TO DATE Must be After FROM DATE"); $("#case_suspensions").trigger("reloadGrid"); return false;} else {if(($("#case_suspensions").getCell(id,1) != '0000-00-00' || $("#case_suspensions").getCell(id,2)!= '0000-00-00') && ($("#case_suspensions").getCell(id,0)) != ""){alert("Cannot combine Game and Time Suspension"); $("#case_suspensions").trigger("reloadGrid"); return false;} else {x_discipline_change(name,val,id,gridReload);}}
}
});

(Un)Selection problem

Hi,

There is a problem selecting rows in the situation showed in below sample code.
When you select a sigle row, and then you select another row, both rows stay selected.
I noticed that if I remove the backslash (the same thing happens with slashes) from the username, selection works perfectly.

Thanks.

<title>Selection problem</title> <script src="scripts/js/jquery.js" type="text/javascript"></script> <script src="scripts/js/jquery.jqGrid.js" type="text/javascript"></script> <script type="text/javascript"> jQuery().ready(function() { // We use a document ready jquery function. jQuery("#list2").jqGrid({ datastr: "{\"Page\":1,\"Total\":1,\"Records\":3,\"Rows\":[{\"Username\":\"ISTRA\\\\marko\"},{\"Username\":\"ISTRA\\\\marko2\"},{\"Username\":\"ISTRA\\\\marko3\"}]}", datatype: "jsonstring", jsonReader: { root: "Rows", page: "Page", total: "Total", records: "Records", repeatitems: false, id: "0" }, height: 250, colModel: [ { name: 'Username', key: true, label: 'Username', width: 150, editable: true }, { name: 'DatabaseName', label: 'DatabaseName', width: 50, editable: false }, { name: 'ServerName', label: 'ServerName', width: 50, editable: false }, { name: 'ConnectionString', label: 'ConnectionString', width: 250, editable: true }, { name: 'XslFilesPath', label: 'XslFilesPath', width: 250, editable: true } ], caption: "Manipulating Array Data" }); }); </script>

localData and filterGrid doesn't work in latest DEV

It break at line :

query = compareFnMapts.p.postData.searchOper(ts.p.postData.searchField, ts.p.postData.searchString,cmtypes[ts.p.postData.searchField]);

_search : true
nd : 1275560132904
page : 1
rows : 20
sidx: ""
sord : "asc"
values: "current_search_string"

So it looks like that it's expecting from toolbar search to pass searchOper, but that seems to be the case when search model dialog is used (with "search:true" param).

So the problem seems to be inconsistent behavior of toolbar search and modal search frameworks.
Toolbar search should behave like model search for this to work.

setGridWidth errors when grid is empty

Firebug reports the following error when the grid is empty and you try to manually set the width via the setGridWidth function:

$t.grid.cols[lvc] is undefined

I did some looking around and I think it is because of line 1774 in file grid.base.js:
if(cl>0) $t.grid.cols[lvc].style.width = cw+"px";

cell value creates invalid title property in addCell

json data contains this string (case_owner2user:login_name = "emailclerk" ) -> "Support Cases"
will produce undesired cell value of "Support Cases"">(case_owner2user:login_name = "emailclerk" ) -> "Support Cases"

addCell function does not allow for or encode double quotes.

italian language

I take a look in the jquery grid local files.
Some text are not completely translated.

e.g.:
emptyrecords:"No records to view",
pgtext:"Page {0} of {1}"},
...

Cell update fails on modal edit dialog and edittype "select"

Hi Tony,

I'm currently using a combination of inline editing and the new row editing modal dialog. The inline edits work well and all gets updates correctly. (server and client side) On using the modal edit dialog all text/date cells work very well but on changing the value of a dropdown cell (edittype "select") it won't get updated correctly after a click on "save". Instead it automatically jumps to the first dropdown index-value-pair. I've done some tests by using "beforeSubmit" and "afterSubmit"... the argument "postdata" inside "beforeSubmit" contains the correct dropdown value (the index value) but the "afterSubmit" callback shows that the "postdata" dropdown value is set to the select option "value" not "index". So I assume the grid accepts a value to be formatted into a string (as used to by using the select formatter) but gets a string from the edit dialog.

Can you reproduce this behaviour? I think this is a bug.

Greetings

  • Marcel Karras

Hiding First Row Breaks Column Alignment

When you use jQuery to hide the first row of a grid the rest of the rows have their columns become unaligned with the header. Additionally, resizing the columns no longer works. This is with jqGrid 3.6.2 tested with Safari 4, Chrome 4, Firefox 3.6RC1, and IE6.

A similar issue to this one was fixed in the 3.5 betas "- Fixed bug in delRowData - the grid does not resize when first row is deleted."

Huge Rendering Issue w/ IE8

jqGrid will not render the data table section in IE8 when it is within a

tag. It works perfectly in chrome, firefox, and IE7. However, when using IE8, only the pager is rendered. I've verified response data and it is in the correct json format. It also works fine when taken out of the tag. However, we must keep it within the form tag.

Any solution to this?
Thanks

jQuery compatibility mode

The tableToGrid function is not able to run in compatibility mode. That is, it assumes $() will invoke jQuery when it should use jQuery(). Users with prototype or other tools in their path will have problems.

Slow performance in IE7

Rendering the grid in IE7 is between 5 - 8 times slower than IE8 / firefox. From looking at the code there seems to be a lot of string concatenation, and also some inefficient jQuery selectors. I'm setting the "gridview" option to true.

Initial filter

Hi Tony, is there a way to specify an initial list of fields, operators and values to jqGrid?

I know that the filter form set the search, postData and page properties, and than calls trigger('reloadGrid'); can you enable a filter parameter to pass to the grid constructor?

Thanks

multiselect mode: click row should deselect other rows and chckbox width

Hi, I found the multi-select model is slightly problematic. In the yahoo mail table and in tables of most windows programs, click on a row would deselect the other previously rows unless the multi-selection key is held down. This is more correct behavior as the use may just want to make a single selection several times before hitting the right row.

Also is there a way to control the size of the checkbox and column padding of the multi-select column?

Thanks

hidden and hidedlg

Hello Tony,

I just tried to let the user edit a row value that is not visible in my table but should be editable using the modal edit dialog (notices, descriptions, comments etc.). So I tried various column model options but couldn't get it using the following options:

{...,
'hidden': true,
'hidedlg': false,
'editrules': { searchhidden: false, edithidden: false }
}

It seems if the 'hidedlg' option is completely unrecognized and only 'hidden' has any effect. The 'edithidden' field seems to have no effect also. (I tested it without editrules at all but no change)
Is this a bug or a misunderstanding on my side?

Greetings

  • Marcel Karras

Documentation: navgrid requires formedit

It is a bit unintuitive that in order to use navgrid, you need to install the form editor component. I wanted the navigation bar for non-editing purposes. It would be nice to have in the documentation, on each page, what optional modules are needed.

BTW: I'm embedding your jqGrid into the open source task tracker here: http://github.com/ari/clockingit/ Thanks!

IE8 form editing

Hi Tony,

I've found a bug using IE8: If you try to start a form edit without having selected an entry there'll be a javascript error and only the grey overlay is shown but no dialog.

Greetings

  • Marcel Karras

a71e1f87197fae51016ad5679f12c35086f3a8ae breaks jQuery UI 1.7.x compatibility.

Hi.

on jQuery 1.3.x and UI 1.7.x calling columnChooser produces an error:

$.ui.multiselect is undefined in ( opts.msel_opts = $.extend($.ui.multiselect.defaults,opts.msel_opts); )

The message on the commit is:
"Fix for columnChooser to be compatible with jQuery UI 1.8. Also very important here is that the multiselect plugin should be loaded before jqGrid"

Cannot quite figure out where to take that "multiselect plugin" Is it part of jQuery UI 1.7.x ?

can colModel supply an 'id' property?

The colModel will set an id by the 'name' property,there will be some trouble to me.In rails,I need to set a name like 'user[name]',eg:colModel[{name:'user[name]', jsonmap:"name"}],and jqgrid will set the id to 'user[name]',then the grid can not be edit,because the id should not contains '[]' maybe.so if I can set the id,it will works fine:colModel[{id:'user_name',name:'user[name]', jsonmap:"name"}]

colModel width property does not reflect actual width after resize

The angle:
I am tweaking filterGrid object to size itself properly in "horizontal" mode, with gridToolbar=true. By properly I mean:

  • do NOT skip search=false; columns. Instead, render a td with nothing inside, with width equal to the that of corresponding column.
  • Include all visible columns in the rendering, including "cb" so that when the filterGrid is put on top of the columns, it lines up the input fields more or less exactly over the searchable columns.

The Problem:

  1. When filterGrid builds the array of settings it will use for the filterGrid object, it looks at colModel. colModel for some reason does not have the actual size of the columns when the columns were resized by hand. As a result of that, the search input fields are built with width different from actual column widths. As a result of that, the input fileds do not line up on top of columns.
  2. On occasion, I would like to store the view as configured by web site user. This should include the new width of resized columns. jqGridExport seems like a logical choice for getting the settings, but, because colModel is not updated when columns are resized, I am forced to scan grid.p.headers[i].width separately through evens system and put that in post data. Pain.

The solution:
Alter the 2 lines of code on Line 133. grid_base.js (v3.4.x) to look something like this:

var newColWidth = this.headers[idx].newWidth || this.headers[idx].width;
this.headers[idx].width = newColWidth;
this.cols[idx].style.width = newColWidth;
p.colModel[idx].width = newColWidth;

Ellipsis problem with Firefox

The following column model:

  colModel: [
    {name:'friendly_time',index:'created_time',align:'center',width:120,fixed:true,resizable:false,classes:'small gray'},
    {name:'marked_up_message',index:'message',width:300,classes:'ui-ellipsis'},
    {name:'comments_count',index:'comments_count',width:95,align:"center",resizable:false,fixed:true},
    {name:'likes_count',index:'likes_count',width:85,align:"center",resizable:false,fixed:true},
    {name:'flags_count',index:'flags_count',width:85,align:"center",resizable:false,fixed:true}
  ],

ends up looking like this in Firefox:

http://img.skitch.com/20091202-kx33im1s626p98pb3fcjgb68dp.png

The rownumWidth is set. Notice how a column is missing? If I remove the ui-ellipsis class the problem goes away.

The issue with Japanese locale file.

When I was trying to use jqGrid in Japanese environment through 2dcJqgrid Rails plugin, I found a couple of issues.

First, because the locale code for Japanese is 'ja' not 'jp', js/i18n/grid.locale-jp.js was not loaded.
Second, the translation is incomplete.

I renamed grid.locale-jp.js to grid.locale-ja.js and added some translation. Because the origin of the file is jqGrid not 2dcJqgrid Rails plugin, I decided to post this message here.

Masatoshi Itagaki

Issue with jquery.fmatter.js

Hi,

I am having an issue with "getRowData" which was retrieving a strange html response for one column, example: "jqGrid.getRowData( id ).value" was returning like "<span ...", when the actual value of the cell is "P", which is a abreviation of a size like "Small"

debugging "grid.base.js" led me to line 1502:
res[nm] = $.unformat($(this).html(),{colModel:$t.p.colModel[i]},i)

in this point "$(this).html()" is actually "P" which is correct. And then it goes to $.unformat inside "jquery.fmatter.js". Since It does not have any formatter in the column it goes straight to the end (line 369)

    return ret ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());

if it did have a formatter "ret" would have a value, but it does not, and " $(cellval).text() " is called, which ends up looking for a "p" element in html which does have a span content.

I guess line 369 should be like:
return ret ? ret : cnt===true ? cellval : $.jgrid.htmlDecode( cellval );

Don't know if you do have a reason for using "$(cellval).text()" but it looks unecessary for value with no formatter.

Hope it helps, and once again thanks for this excellent work on jqgrid!

setRowData not applying colModel formatter

Using 3.5 Beta.

As far as I can tell the setRowData method does not apply the colModel formatter.

The work around is to call addRowData then delRowData to update a row of data with colModel formatting (I haven't tried this yet, but I'm assuming this will work).

Is there a technical reason setRowData does not apply the formatting? Would be really nice if it did. Thanks.

How to set jsonReader so I can use nested root in data?

I have a simple problem, seems like this must have come up before:

I want to set my jsonReader root param so I can look at an inner nested json array to get my grid
rows. Root param seems to assume root node is at top level of data returned from server but if I'm using someone elses server and have to use their data, then that's not a good assumption:

{cart:
{cartTotal:
items:[
{id:item1, price:$3, desc: salt},
{id:item2, price:$2, desc: pepper}
]
}
}

I had expected in my jsonReader setup, I could simply say:

jsonReader : {
root:"cart.items",
...
}
to point to my inner json array node containing my row data but it doesn't work. I've tested with data not nested, (only change is 'items" node at top level, "cart" removed) and grid works great! So I'm pretty sure I've isolated this to:
a) root does not support dot notation, but some other solution exists to read this nested root node
b) root expects some other notation other than dot notation
c) no solution exists for nested root node

Nice grid, please tell me how to make above example work ;-)

thx,
Surfyogi

after submit issue

When an after submit function is provided for the delete button, the dialog message doesn't close.
In firefox's error console a message error said: 'k undefined'. Searching through the source code, I found that a response array variable was beign assigned, but when an after submit was specified, it treated the array as a normal variable. This causes the following commands problems when reading the array.
The problem is in the file grid.formedit.js at line 1323.
change "ret = rp_ge.afterSubmit(data,postd);" to "ret[0] = rp_ge.afterSubmit(data,postd);"
You might want to check the edit and add functions just in case they have the same assignment.

Dynamic scrolling row populating fails in Webkit when scroll=true and a row is currently selected

I can scroll and load rows fine when I have yet to select to a row for editing.

After I select a cell for editing and try and scroll no new rows are loaded. Only happens in Webkit.

You can easily make this happen on the demo page by going to http://www.trirand.com/blog/jqgrid/jqgrid.html in your webkit browser then clicking on "New in version 3.6" -> "True Scrolling Rows" and then selecting a row and then scrolling; it should fail.

This seems to happen in both row editing and cell-editing modes… not sure how that would affect the issue.

Sometimes there's empty ajax response in IE8

Hi, Tony!
I try to set simple jqgrid on my page.
In FF it seems all right. But in IE8 I sometimes get empty table. I try debug the code, and I catch the error in ajax request (grid.base.js, line 824). I try resolve the issue to set timeout (1000). But it didn't help :(
May be you could help me,
thank you in advance,
katrin

P.S.
I use MVC, jquery-1.4.2, jquery-ui-1.8.2, jqgrid-3.6.5.
The script looks like:
jQuery(document).ready(function() {
jQuery('#EmployeeTable').jqGrid({
url: '<%= ResolveUrl("~/Staff/StaffData/") %>',
datatype: 'json',
mtype: 'POST',
jsonReader: {
page: "page",
total: "total",
records: "records",
root: "rows",
repeatitems: false,
width: 600,
id: ""
},
colNames: ['Имя', 'Фамилия'],
colModel: [
{ name: 'firstname', width: 155 },
{ name: 'lastname', width: 150 }
],
width: 600,
pager: '#EmployeeTablePager',
viewrecords: true
});
});

Edit Form Dynamic Height

When there are many fields, it is impossibile to edit and save due to limited edit form height..

Please, insert this code in grid.formedit.js on line 416, after the viewModal call to resize and let scrollbars show:

var $parentdiv=$($t).parents('.ui-jqgrid:first');
frm.css('height',Math.min(frm.height(),$parentdiv.height()-80)+'px');

Thanks

multipleSearch True turns filter object into string.

Hi Tony.

While working with multipleSearch:true found the following strange argument mismatch in grid.formedit.js

$("#"+fid).searchFilter(fields, {..., stringResult:p.multipleSearch, ...})

I am talking specifically of "stringResult:p.multipleSearch"

stringResult seems switch return value from SearchFIlter between string and JS {}.

This code is there since the commit c43c82a and was apparently introduced at the initial import of jquery.SearchFilter.js during jqGrid 3.5 beta.

The problem:

When multipleSearch = true the postData's filter property is a string, with quotes escaped. When converted into JSON for posting postData looks like this:

{"_search":true,"nd":1268131745449,"custom":"present","filterrules":"{\"groupOp\":\"AND\",\"rules\":[{\"field\":\"amount\",\"op\":\"ne\",\"data\":\"1234\"}]}","rows":20,"page":1,"sidx":"invid","sord":"desc"}

Instead of something like this:

{"_search":false,"nd":1268129634898,"custom":"present","filterrules":{"groupOp":"and","rules":[{"field":"amount","op":"ne","data":"100"},{"field":"note","op":"ne","data":"note"}]},"rows":20,"page":1,"sidx":"invid","sord":"desc"}

Correction in grid.base.js for IE8

Hi,

testing in IE8 I found the following error:

Message: Object doesn't support this property or method
Line: 771
Char: 4
Code: 0
URI: ...js//grid.base.js

the line is actually:

pginp = (ts.p.pginput===true) ? ""+$.jgrid.format(ts.p.pgtext || "","","")+"" : "",

and the error disapears after changing the comparison from "===" to "==" such:
pginp = (ts.p.pginput==true) ? ...

the same does not happen in firefox.

Row edit save - throwing javascript error when multiselect:true

there is a jquery select statement that grabs all of the "td" elements from the jqgrid. the multselect column is included in the column count and thus has one too many iterations in the jquery each loop. this happens two places in the code. I rectified the issue by checking for the column being null.

var h;a("td",p).each(function(m){
h=c.p.colModel[m];
if(h==null)return; <= my code

Search unstable in IE

If i search on a specific field that 'has value' X (where X can be any search criteria) nothing happens.

In my example i used the word '@muziekgebouw' or 'muziekgebouw' which did not do anything but showing the 'loading' status for 1 sec.

Smaller terms will give me the correct results.

jquery.fmatter.js doesn't handle timestamp for srcformat

My application send timestamp data to jqgrid (like "1268913728759").

I configured my colModel with formatoptions:{srcformat:'U', newformat:'H:i:s d/m/Y'} ( I used this page as reference http://php.net/manual/fr/function.date.php ).

I debugged jquery.fmatter.js and I suggest to patch line 125 :
timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s,0);
by
timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s,ts.u);

It works for me, but I didn't check for regression.

Thanks !

Date formatting with local data

Working with 3.6.4, I have a local array which contains Date objects, and when I tried to turn on formatter: 'date' for that column, the whole grid just didn't show up

Turned out it's a problem with jquery.fmatter.js, which automatically expects dates to be strings, and a simple check seems to have solved it, starting at line 108 of jquery.fmatter.js
if (typeof(date) !== Date) {
// current code
date = date.split(/[\/:;.\t\T\s-]/);
format = format.split(/[\/:
;.\t\T\s-]/);
// parsing for month names
for(k=0,hl=format.length;k<hl;k++){
if(format[k] == 'M') {
dM = $.inArray(date[k],dateFormat.i18n.monthNames);
if(dM !== -1 && dM < 12){date[k] = dM+1;}
}
if(format[k] == 'F') {
dM = $.inArray(date[k],dateFormat.i18n.monthNames);
if(dM !== -1 && dM > 11){date[k] = dM+1-12;}
}
ts[format[k].toLowerCase()] = parseInt(date[k],10);
}
ts.m = parseInt(ts.m,10)-1;
var ty = ts.y;
if (ty >= 70 && ty <= 99) { ts.y = 1900+ts.y; }
else if (ty >=0 && ty <=69) { ts.y= 2000+ts.y; }
timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);
} else {
// if date is a Date to start with
timestamp = date;
}

Allow modification of editoptions in beforeEditCell event handler

A small change in grid.celledit.js could allow modification of editoptions in the beforeEditCell event handler. This would allow users to specific dynamic values for input elements such as <select/> lists.

*** grid.celledit.js    2009-10-24 22:15:50.042000000 -0400
--- grid.celledit.js.new        2009-10-24 22:15:40.262000000 -0400
***************
*** 76,84 ****
                                        if(tmp2) {tmp = tmp2;}
                                }
-                               var opt = $.extend({}, $t.p.colModel[iCol].editoptions || {} ,{id:iRow+"_"+nm,name:nm});
-                               var elc = createEl($t.p.colModel[iCol].edittype,opt,tmp,true);
                                if ($.isFunction($t.p.beforeEditCell)) {
                                        $t.p.beforeEditCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
                                }
                                $(cc).html("").append(elc).attr("tabindex","0");
                                window.setTimeout(function () { $(elc).focus();},0);
--- 76,84 ----
                                        if(tmp2) {tmp = tmp2;}
                                }
                                if ($.isFunction($t.p.beforeEditCell)) {
                                        $t.p.beforeEditCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
                                }
+                               var opt = $.extend({}, $t.p.colModel[iCol].editoptions || {} ,{id:iRow+"_"+nm,name:nm});
+                               var elc = createEl($t.p.colModel[iCol].edittype,opt,tmp,true);
                                $(cc).html("").append(elc).attr("tabindex","0");
                                window.setTimeout(function () { $(elc).focus();},0);

Datatype 'function' should provide a better abstraction

The grid datatype 'function' is currently implemented in such a way that the function provided needs to not only handle post data and server responses, but also apply the data received from the server to the grid. This implies that in order to apply some simple data transformation, e.g. to accomodate a server API that wasn't written specifically to work with jqGrid, one needs to consider all the mechanics of populating the table. Moreover, it seems to me that the function supplied as the datatype doesn't have access to all the information it might need to pass to a grid method such as addJSONData.

I therefore propose to extend the definition of the function supplied as the datatype in a backwards-compatible way: if the function returns something non-null, the result should be treated by the grid just like data of type 'json'. This way, one can skip populating the grid and just mangle post data and responses, while functions that do want to populate the grid themselves can still do so and return nothing as they used to.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.