मैं एक ही समस्या थी और मुझे लगता है कि मैं तुरंत चेकबॉक्स क्लिक संभालने के लिए एक अच्छा समाधान पाया लगता है। मुख्य विचार संपादनसेल विधि को ट्रिगर करना है जब उपयोगकर्ता गैर-संपादन योग्य चेकबॉक्स पर क्लिक करता है।
jQuery(".jqgrow td").find("input:checkbox").live('click', function(){
var iRow = $("#grid").getInd($(this).parent('td').parent('tr').attr('id'));
var iCol = $(this).parent('td').parent('tr').find('td').index($(this).parent('td'));
//I use edit-cell class to differ editable and non-editable checkbox
if(!$(this).parent('td').hasClass('edit-cell')){
//remove "checked" from non-editable checkbox
$(this).attr('checked',!($(this).attr('checked')));
jQuery("#grid").editCell(iRow,iCol,true);
}
});
इस के अलावा आप अपने ग्रिड के लिए घटनाओं परिभाषित करना चाहिए,:: यहाँ कोड है
afterEditCell: function(rowid, cellname, value, iRow, iCol){
//I use cellname, but possibly you need to apply it for each checkbox
if(cellname == 'locked'){
//add "checked" to editable checkbox
$("#grid").find('tr:eq('+iRow+') td:eq('+iCol+') input:checkbox').attr('checked',!($("#regions").find('tr:eq('+iRow+') td:eq('+iCol+') input:checkbox').attr('checked')));
//trigger request
jQuery("#grid").saveCell(iRow,iCol);
}
},
afterSaveCell: function(rowid, cellname, value, iRow, iCol){
if(cellname == 'locked'){
$("#grid").find('tr:eq('+iRow+') td:eq('+iCol+')').removeClass('edit-cell');
}
},
फिर अपने चेकबॉक्स जब उपयोगकर्ता इस पर क्लिक अनुरोध संपादित हर बार भेज देंगे।
स्रोत
2012-03-19 15:08:32
महान जवाब @Justin !! धन्यवाद, अगर यह मेरा सवाल था, तो मैं आपको टिक दूँगा। – Dan
शानदार! काश मैं इसे चयनित उत्तर के रूप में चिह्नित कर सकता हूं! – Nigel
आपका स्वागत है! यह एक शर्म की बात है कि यह सवाल इतना पुराना है, लेकिन उम्मीद है कि उत्तर अभी भी सहायक हो सकता है :) –