2011-06-14 10 views
5

सेटसेल विधि का उपयोग कर एक jqGrid सेल में एक सीएसएस क्लास जोड़ना संभव है।मैं jqGrid सेल से सीएसएस क्लास को कैसे हटा सकता हूं?

grid.setCell(rowId, "ColumnName", "", "my-style-class"); 

ध्यान में रखते हुए इस विधि प्रतीत होता है कि केवल सक्षम को सीएसएस वर्गों को जोड़ने, कैसे एक एक jqGrid सेल से एक CSS वर्ग निकाल सकते हैं?

उत्तर

11

कोई एक मानक jqGrid विधि के साथ कॉल क्लास को हटा नहीं सकता है। तो अगर आप इस मैन्युअल रूप से करना है:

var iCol = getColumnIndexByName(grid,"ColumnName"), 
    tr = grid[0].rows.namedItem(rowid), // grid is defined as grid=$("#grid_id") 
    td = tr.cells[iCol]; 
$(td).removeClass("my-style-class"); 

जहां getColumnIndexByName एक साधारण समारोह जो स्तंभ नाम से स्तंभ अनुक्रमणिका मिलता है:

var getColumnIndexByName = function(grid,columnName) { 
    var cm = grid.jqGrid('getGridParam','colModel'); 
    for (var i=0,l=cm.length; i<l; i++) { 
     if (cm[i].name===columnName) { 
      return i; // return the index 
     } 
    } 
    return -1; 
} 

डेमो here देखें।

UPDATED: Free jqGridiColByName आंतरिक पैरामीटर जो getColumnIndexByName समारोह के बजाय इस्तेमाल किया जा सकता है। iColByName पैरामीटर आंतरिक jqGrid द्वारा आंतरिक रूप से भर दिया जाएगा और इसे कॉलम के पुन: क्रमबद्ध करके अपडेट किया जाएगा। इसलिए

var p = grid.jqGrid("getGridParam"), // get the reference to all parameters 
    iCol = p.iColByName["ColumnName"], // get index by column name 
    cm = p.colModel[iCol]; // item of "ColumnName" column 

तरीका बहुत आसान है और यह बहुत तेज़ी से काम करता है। किसी को ध्यान में रखना चाहिए कि फीचर को मुफ्त jqGrid में मुफ्त jqGrid 4.8 के प्रकाशन के बाद शामिल किया गया है। तो किसी को फीचर रखने के लिए गिटहब से नवीनतम स्रोत डाउनलोड करना होगा या कम से कम मुफ्त jqGrid 4.9-beta1 का उपयोग करना होगा।

+0

धन्यवाद आप कोड – shv22

+0

@ shv22 के लिए: आपका स्वागत है! – Oleg

1

एक आसानी से के रूप में वर्ष वर्ग को हटाकर एक सेल करने के लिए नया वर्ग जोड़ सकते हैं:

$("#gridname").removeClass('oldclass') 
       .setCell(rowId,'column_name','','newclass'); 

कहाँ rowId इसी सेल वाली पंक्ति का आईडी है और के रूप में प्राप्त किया जा सकता:

var ids = $("#gridname").jqGrid('getDataIDs');