0
我在jqgrid中有一個不能正確排序的日期字段。原因是因爲我的第一個formatter:'date'
被第二個參考formatter: function(...)
覆蓋。 如何保留這兩項功能?jqgrid中的多個格式化程序日期選項
這裏是我的代碼:
{name:'FUSInvitedDateX',hidden:true,index:'FUSInvitedDateX',width:'250',
search: true,searchoptions:{sopt:['eq','ne','lt','le','gt','ge'], dataInit:
function(elem) {$(elem).datepicker();}},sorttype: 'date',
formatter:'date',formatoptions: {srcformat: 'm/d/Y', newformat: 'm/d/Y' },
formatter: function(cellvalue, options, rowObject) { return
highlight(cellvalue, options, rowObject, ['FUSScheduledDateX','FUSCompletedDateX','InterviewStatus_DerivedX'],'interview-invite-late');}}
,然後在高亮功能我有這樣的事情:
function highlight(cellvalue,options,rowObject,compare,color) {
if (cellvalue.length==0) { return cellvalue; }
[ evaluating code ]
return '<span>' + cellvalue + '</span>';
任何建議,將不勝感激
感謝您的快速響應。你有沒有關於如何修改上述解決方案的示例代碼:a)允許過濾日期字段,並且仍然b)允許自定義格式化程序。非常感激。 – richnwilson
@richnwilson:'sorttype'可以定義爲回調函數,它應該返回值,在排序過程中應該使用**而不是**原始值。如果你使用'srcformat:'m/d/Y''就像2017年6月16日那麼你可以將它轉換爲''Y-m-d''就像2017-06-16。因此'sorttype'的代碼可以簡化爲如下形式:'sorttype:function(cellValue){var parts = cellValue.split('/');返回零件[2] +' - '+零件[0] +' - '零件[1]; }'。如果源數據可能是6/16/2017而不是06/16/2017,並且數據可能爲空或未定義,則實際代碼可能會更復雜一些。 – Oleg
謝謝。我相信我已經解決了排序順序,使用如下:'sorttype:function(cellValue){if(cellValue.length == 0 || typeof cellValue ===「undefined」){return false;} else {var $ parts = cellValue.split('/'); \t var $ yyyy = $ parts [2]; \t var $ m = $ parts [0] .length <2? '0'+ $ parts [0]:$ parts [0]; var $ d = $ parts [1] .length <2? '0'+ $ parts [1]:$ parts [1];返回$ yyyy +「 - 」+ $ m +「 - 」+ $ d;}} **但是**日期過濾器似乎不起作用。我嘗試過布爾條件= <=, > =使用datepicker,但它只是顯示空白。 – richnwilson