मेरे समस्या: जब मैं jqGrid में एक पंक्ति खींचें, और यह पहले से चौड़ाई अलग-अलग के सभी एक कस्टम पुनः लोड समारोह, ग्रिड की कोशिकाओं, पूरा करती सेट जब ग्रिड परिभाषित किया गया है, सभी एक ही चौड़ाई के लिए आकार बदल रहे हैं। यह वेबकिट ब्राउज़र में होता है लेकिन फ़ायरफ़ॉक्स में नहीं।jqGrid - एक पंक्ति खींच सॉर्ट करने के लिए यह शिकंजा अप सेल चौड़ाई
कोड: मैं खींच है एक ग्रिड पर सक्षम सॉर्ट करने के लिए:
$mygrid.jqGrid(
'sortableRows', {
update: function(e, ui) {
sort_grid(e, ui);
}
}
);
आप मैं खींचें पर बुलाया एक छँटाई समारोह पूरा, sort_grid
है देख सकते हैं। संदेश यह है:
function sort_grid(e, ui) {
var current_grid = $(ui.item[0]).closest('table').attr('id');
var $current_row, moved_id, next_id, next_priority;
var $moved_row = $('#' + current_grid + ' tr');
var cnt = 0;
this_id = ui.item[0].id;
$moved_row.each(function() {
if ($(this).attr('id') == this_id) {
$current_row = $moved_row.eq(cnt);
moved_id = $current_row.attr("id");
next_id = $current_row.next().attr("id");
next_priority = $current_row.next().children("td:first").attr("title");
}
cnt++;
});
if (typeof moved_id !== 'undefined') {
if (next_priority == 'undefined') {
next_priority = '999';
}
$.ajax({
url:my_url,
type:"POST",
data:"moved_id=" + moved_id + "&next_id=" + next_id + "&next_priority=" + next_priority,
success: function(data) {
$('.grid').setGridParam({loadonce:false, datatype:'json'}); // force grid refresh from server
$('#' + current_grid).trigger("reloadGrid");
$('.grid').setGridParam({loadonce:true}); // reset to use local values
}
})
}
}
एक बार मुझे लगता है कि फिर से लोड ट्रिगर $('#' + current_grid).trigger("reloadGrid");
मारा और फिर से लोड खत्म ग्रिड अब ग्रिड में कोशिकाओं पर गलत चौड़ाई (वे सभी एक ही चौड़ाई होने के विभिन्न चौड़ाई वाले होने से जाना)।
ग्रिड मूल रूप से यह था चौड़ाई सामान्य jqGrid फैशन में परिभाषित बनाया गया था जब:
colModel:[
{name:'one', index:'one', sortable:true, width:45},
{name:'two', index:'two', sortable:true, width:180},
]
लेकिन बाद ग्रिड फिर से लोड चौड़ाई रीसेट कर रहे हैं सभी एक ही चौड़ाई (मुझे लगता है इस की कुल चौड़ाई है ग्रिड को पंक्ति में कोशिकाओं की कुल संख्या में समान रूप से विभाजित किया जा रहा है)। तो, क्या मुझे इन चौड़ाई को स्पष्ट रूप से सेट करने की आवश्यकता है, शायद ग्रिड रीलोड के बाद निम्नलिखित कुछ कहा जाता है?
$('.grid').setGridParam({
colModel:[
{name:'one', index:'one', sortable:true, width:45},
{name:'two', index:'two', sortable:true, width:180},
]
});
मैं ऊपर ठीक करने की कोशिश की, फिर से लोड करने के बाद colModels को पुनर्परिभाषित और चौड़ाई को स्पष्ट रूप से स्थापित करने, लेकिन यह कोई प्रभाव नहीं पड़ा। वीडर, अगर मैं ब्राउज़र कंसोल में जाता हूं और चौड़ाई को जावास्क्रिप्ट के साथ सेट करता हूं तो इसका कोई प्रभाव नहीं पड़ता है। यह मुझे स्टंप हो गया है।
मेरे लिए दुर्भाग्य से ऐसा लगता है कि jqGrid "उत्तर मैन" (Oleg) के आसपास नहीं है ... lol।
मैंने वास्तव में उन दोनों की कोशिश की है। अभी भी कोई भाग्य नहीं है। अभी के लिए मैंने ग्रिड को पूरी तरह से पुनर्जीवित करने का प्रयास किया है, लेकिन मुझे आवश्यक राज्य में इसे प्राप्त करने के लिए आवश्यक पैराम में गुजरना है। बट में दर्द लेकिन यह काम करता है। – Lothar