Forum

November 2nd, 2014
A A A
Avatar

Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

The forums are currently locked and only available for read only access
sp_Feed Topic RSS sp_TopicIcon
Custom Cell Class
18/01/2009
11:25
Avatar
zchermit
zchermit
Member
Members
Forum Posts: 4
Member Since:
15/01/2009
sp_UserOfflineSmall Offline

Hi, Tony!

To solve my problem in jqGrid I had to be able to specify different styles for different cells. For example, draw a chess board 🙂
It would like to see such a possibility.

While a done like this.
Implemented only for JSON. Version jqGrid 3.4 beta.

The idea is to expand the data yet another array of styles for each cell. In my code, this array is called the "cssp".

--- grid.base.js.orig    Sun Jan 11 14:33:42 2009
+++ grid.base.js    Sun Jan 18 18:53:37 2009
@@ -570,7 +570,7 @@
                     if (cssp){
                         if(typeof cssp == 'string') {$(tcell).addClass(cssp);} else {$(tcell).css(cssp);}
                     }
-                    if(typeof attrp == 'object') {$(tcell).attr(cssp);}
+                    if(typeof attrp == 'object') {$(tcell).attr(attrp);}
                 }
             }
         });
@@ -659,10 +659,11 @@
                 grid.cols[k] = this;
             });
         };
-        var addCell = function(t,row,cell,pos) {
+        var addCell = function(t,row,cell,pos,cssp) {
             var td;
             td = document.createElement("td");
             formatter($(td,t),row,cell,pos,'add');           
+            if (cssp) { $(td,t).addClass(cssp); }
             row.appendChild(td);
             formatCol($(td,t), pos);
         };
@@ -761,7 +762,7 @@
         };
         var addJSONData = function(data,t, rcnt) {
             if(data) { var fpos = ts.p.treeANode; rcnt = rcnt || 0; if(fpos===0 && rcnt===0) {$("tbody tr:gt(0)", t).remove();} }  else { return; }
-            var row,f=[],cur,gi=0,si=0,drows,idn,rd=[],cn=(ts.p.altRows===true) ? 'alt':'';
+            var row,f=[],cur,curcss,gi=0,si=0,drows,idn,rd=[],cn=(ts.p.altRows===true) ? 'alt':'';
             ts.p.page = data[ts.p.jsonReader.page];
             ts.p.lastpage= data[ts.p.jsonReader.total];
             ts.p.records= data[ts.p.jsonReader.records];
@@ -799,9 +800,15 @@
                     si= 1;
                 }
                 if (ts.p.jsonReader.repeatitems === true) {
+                    if(ts.p.jsonReader.cssp) {curcss = cur[ts.p.jsonReader.cssp];}
                     if(ts.p.jsonReader.cell) {cur = cur[ts.p.jsonReader.cell];}
                     for (var j=0;j<cur.length;j++) {
-                        addCell(t,row,cur[j],j+gi+si);
+                    if (curcss) {
+                      addCell(t,row,cur[j],j+gi+si,curcss[j]);
+                    } else {
+                    // if cssp does not exists - then nothing or default maybe...
+                        addCell(t,row,cur[j],j+gi+si);
+                    }
                         rd[ts.p.colModel[j+gi+si].name] = cur[j];
                     }
                 } else {
@@ -1184,6 +1191,8 @@
             records: "records",
             repeatitems: true,
             cell: "cell",
+            // CSS class for each cell
+            cssp: "cssp",
             id: "id",
             userdata: "userdata",
             subgrid: {root:"rows", repeatitems: true, cell:"cell"}

PS. Thank you for jqGrid. He has a great future;)

PPS. Sorry about my English. That's all translate.google.com:)

Asche zu Asche...

19/01/2009
02:32
Avatar
tony
Sofia, Bulgaria
Moderator
Members

Moderators
Forum Posts: 7721
Member Since:
30/10/2007
sp_UserOfflineSmall Offline

Hello,

Thenk you very much for this. I will see if I can include it in the final.

Regards

Tony

For professional UI suites for Java Script and PHP visit us at our commercial products site - guriddo.net - by the very same guys that created jqGrid.

19/01/2009
15:33
Avatar
zchermit
zchermit
Member
Members
Forum Posts: 4
Member Since:
15/01/2009
sp_UserOfflineSmall Offline

Good time of the day, Tony!

A small change in the code above. Call addClass functions should be done before the call formatter.
In this case, formatting can be managed through the classes too. For example, turn it off in class 'unformat ':)

@@ -659,16 +659,17 @@
grid.cols[k] = this;
});
};
- var addCell = function(t,row,cell,pos) {
+ var addCell = function(t,row,cell,pos,cssp) {
var td;
td = document.createElement("td");
- formatter($(td,t),row,cell,pos,'add');
+ if (cssp) { $(td,t).addClass(cssp); }
+ formatter($(td,t),row,cell,pos,'add');
row.appendChild(td);
formatCol($(td,t), pos);
};
var formatter = function (elem, row, cellval , colpos, act){
var cm = ts.p.colModel[colpos];
- if(cm.formatter) {
+ if ( (cm.formatter) && (!$(elem).hasClass('unformat')) ) {
var opts= {rowId: row.id, colModel:cm,rowData:row};
if($.isFunction( cm.formatter ) ) {
cm.formatter(elem,cellval,opts,act);

With best wishes,
Serg.

Asche zu Asche...

20/02/2009
01:43
Avatar
philbaud
New Member
Members
Forum Posts: 1
Member Since:
20/02/2009
sp_UserOfflineSmall Offline

Hi,

I wonder if it wouldn't be more interesting to be able to add any attribute to the <td> tag, just by copying the attributes in the <cell> tag from the XML data only (sorry for that).

This would be interresting for style and also for sending parameters. Here is the code I've writen :

1- arround line 683

        //var formatCol = function (elem, pos){ // change philbaud_20090220
        var formatCol = function (elem, pos,attribs){   
            var ral = ts.p.colModel[pos].align;
            if(ral) { $(elem).css("text-align",ral);}
            // add_begin philbaud_20090220
            for (var attrib in attribs) {
                $(elem).attr(attrib,attribs[attrib]);
            }
            // add_end philbaud_200890220           
            if(ts.p.colModel[pos].hidden) {$(elem).css("display","none");}
        };
        var resizeFirstRow = function (t,er){
            $("tbody tr:eq("+er+") td",t).each( function( k ) {
                $(this).css("width",grid.headers[k].width+"px");
                grid.cols[k] = this;
            });
        };
        //var addCell = function(t,row,cell,pos) { // change philbaud_20090220
        var addCell = function(t,row,cell,pos,attribs) {           
            var td;
            td = document.createElement("td");
            formatter($(td,t),row,cell,pos,'add');           
            row.appendChild(td);
            //formatCol($(td,t), pos); // change philbaud_20090220
            formatCol($(td,t), pos,attribs);               
        };

2-around line 768

                        //addCell(t,row,v,i+gi+si); // remove philbaud_20090220
                        // add-begin philbaud_20090220
                        var attribs = new Array();
                        if((0 != this.attributes.length)){
                            //attrib = "";
                            for (nCpt = 0; nCpt < this.attributes.length; nCpt ++) {
                                //attrib += "; " + this.attributes[nCpt].nodeName + ":" + this.attributes[nCpt].nodeValue;
                                attribs[this.attributes[nCpt].nodeName] = this.attributes[nCpt].nodeValue;
                            }
                        }
                        addCell(t,row,v,i+gi+si,attribs);
                        // add-begin philbaud_20090220       

Sorry, I'm not easy enough with javascript to be sure of my code. But it works on all browser I've tested.

Philippe

20/02/2009
02:28
Avatar
tony
Sofia, Bulgaria
Moderator
Members

Moderators
Forum Posts: 7721
Member Since:
30/10/2007
sp_UserOfflineSmall Offline

Hello,

The new 3.4 add such philosophy in JSON (read more complex structure). I think it is possible to extend some of this in XML.

Regards

Tony

For professional UI suites for Java Script and PHP visit us at our commercial products site - guriddo.net - by the very same guys that created jqGrid.

07/04/2010
13:01
Avatar
MiB
MiB
Member
Members
Forum Posts: 8
Member Since:
23/03/2009
sp_UserOfflineSmall Offline

Hi

Where can i read more about complex structure of json? thx!

Forum Timezone: Europe/Sofia

Most Users Ever Online: 715

Currently Online:
48 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.com

Moderators: tony: 7721, Rumen[Trirand]: 81

Administrators: admin: 66

Comments are closed.
Privacy Policy   Terms and Conditions   Contact Information