Birçok sütun içeren jqGrid tablo var. Izgarada arama, filtre araç çubuğu kullanılarak yapılır. Çoğu için arama sadece basit varsayılan operatördür. Bir tarih sütunu için farklı türde operatörler ve tarih seçici seçicilerini istiyorum. dataInit
datepicker başlatmayı searchoptions
'a ekledim, gerekli işleçler searchoptions.sopt
. Bu operatörleri göstermek için searchOperators değerini true olarak ayarladım. Yani bu sütun için her şey yolunda. Operatör seçici açılırken tarihçem var. Ancak, diğer tüm sütunlar için varsayılan operatör simgesi sol tarafta gösterilir. Operatör varsayılan ve kullanıcı bunu değiştiremediğinden can sıkıcıdır. Yani onları jqGrid API kullanarak gizlemek için bir olasılık var mı? Bildiğim kadarıyla sadece benim özel kod kullanarak bu saklanabileceği alabildiğine: operatörü kaldırmak için sopt
veya sopt.length == 0
boş olan tüm sütunlar için benim sütun modeli kontrol etmeliyiz ve ızgaranın render sonra (loadComplete
olabilir)jqGrid filtre araç çubuğu arama işleç seçici sadece tek sütun için
seçici. Veya gizleyen CSS sınıfını ekleyin. Bu çözümden hangisinin daha iyi olduğundan emin olun (gizleme veya kaldırma) çünkü kaldırma bazı mantığı bozabilir ve gizleme genişlik hesaplamasını etkileyebilir. İşte biri çok daha iyi bir fikir var mı ben fiddle
function fixSearchOperators()
{
var columns = jQuery("#grid").jqGrid ('getGridParam', 'colModel');
var gridContainer = $("#grid").parents(".ui-jqgrid");
var filterToolbar = $("tr.ui-search-toolbar", gridContainer);
filterToolbar.find("th").each(function()
{
var index = $(this).index();
if(!(columns[index].searchoptions &&
columns[index].searchoptions.sopt &&
columns[index].searchoptions.sopt.length>1))
{
$(this).find(".ui-search-oper").hide();
}
});
}
üzerinde ne anlama geldiğini örneğidir?