के अंदर एक jqGrid पर setGridWidth को सही ढंग से कॉल करना मेरे पास एक jQueryUI संवाद (#locDialog
) है जिसमें एक jqGrid ($grid
) है। जब संवाद खुलता है (प्रारंभ में, लेकिन जब भी यह खुलता है इसे कॉल किया जाता है), तो $locDialog
के आकार में आकार बदलने के लिए मुझे $grid
चाहिए। जब मैं शुरुआत में ऐसा करता हूं, तो मुझे ग्रिड के अंदर स्क्रॉलबार मिलते हैं (संवाद के अंदर नहीं)।एक jQueryUI संवाद
अगर मैं कोड डीबग, मैं देख $grid
की चौड़ाई 677. है तो, मैं setGridWidth()
फिर से फोन और चौड़ाई की जाँच और अब मैं 659 जो, 18px कम है जिसके लिए स्क्रॉल क्षेत्र का आकार है, jqGrid (Dun-dun-dun ..)
जब मैं संवाद को दोबारा बदलता हूं, तो मैं भी ग्रिड का आकार बदलता हूं, और सबकुछ खुश है - जहां भी आवश्यक हो, कोई स्क्रॉलबार नहीं।
मेरे संवाद init कोड:
$locDialog = $('#location-dialog').dialog({
autoOpen: false,
modal: true,
position: ['center', 100],
width: 700,
height:500,
resizable: true,
buttons: {
"Show Selected": function() {alert($('#grid').jqGrid('getGridParam','selarrrow'));},
"OK": function() {$(this).dialog('close');},
"Cancel": function() {$(this).dialog('close');}
},
open: function(event, ui) {
$grid.setGridHeight($(this).height()-54);
// No idea why 54 is the magic number here
$grid.setGridWidth($(this).width(), true);
},
close: function(event, ui) {
},
resizeStop: function(event, ui) {
$grid.setGridWidth($locDialog.width(), true);
$grid.setGridHeight($locDialog.height()-54);
}
});
मैं उत्सुक किसी को भी करने से पहले इस देखा है यदि हूँ। असल में, यह दुनिया का अंत नहीं है यदि मेरे पास शुरुआत में अनावश्यक स्क्रॉलबार हैं, लेकिन यह अजीब बात है कि जब मैं शुरुआत में सेटग्रिडविड्थ को कॉल करता हूं, तो यह 18px के स्क्रॉल क्षेत्र को ध्यान में रखता नहीं है।
जहां तक जादुई संख्या 54 है, वह संख्या है जो मुझे डायल को अनावश्यक स्क्रॉलबार के बिना प्रस्तुत करने के लिए संवाद मूल्य की ऊंचाई से घटाना था।
मुझे लगता है कि यह एक समय मुद्दा हो सकता है, हालांकि यह बहुत समझ में नहीं आता है। ग्रिड पूरी तरह से लोड होने के बाद शायद मुझे एक घटना को कॉल करना चाहिए। यह सुनिश्चित कर सकता है कि यह इसकी चौड़ाई सही ढंग से गणना करता है।
मैं निश्चित रूप से यह एक नज़र दूंगा, ओलेग - कोड के लिए बहुत धन्यवाद। मैं इस बिंदु पर इसके बारे में ज्यादा चिंतित नहीं हूं क्योंकि समस्या तब होती है जब उपयोगकर्ता एक संवाद खोलता है। एक बार वे आकार/पुनः लोड करने के बाद, यह स्वयं को ठीक करता है। फिर, संभवतः एक समय मुद्दा। धन्यवाद फिर से: डी – Dan
@ ओलेग: क्या आप कुछ ऐसा ही देख सकते हैं [प्रश्न] (http://stackoverflow.com/questions/8292341/horizontal-scroll-bar-in-jqgrid-when-needed) – Ricky
मुझे पता है कि यह एक है पुराना जवाब लेकिन ... मैंने इस कोड का उपयोग करने की कोशिश की है लेकिन यह ठीक से काम नहीं करता है। मैंने @ ओलेग के 'फिक्सग्रिडविड्थ' फ़ंक्शन का उपयोग किया है और हां, यह डी ग्रिड का आकार बदलता है। लेकिन कॉलम एक ही आकार के साथ रहते हैं इसलिए ग्रिड खाली आधा है, स्तंभ आकार बदलते नहीं हैं। क्या आप जानते हैं कि कॉलम का आकार कैसे बदलें? – Isthar