2016-02-15 23 views
3

爲了實現更好的輸出保存的數據我經常使用$summary_fields函數的輸出,最簡單的例子是Created.Nice24這將返回更可讀格式的日期,但阻止它成爲過濾或按此值排序。修改GridFieldFilterHeader使用自定義摘要字段

有沒有辦法來解決這個問題,也可以修改GridFieldFilterHeader使用這些很好的值進行搜索,並可能顯示一個下拉字段而不是輸入文本字段?

回答

0

我可以回答你的第一個問題:不可以按照你所描述的那些日期由函數表示的列進行排序 - 這是因爲底層邏輯基本上是一個「SORT BY」SQL子句和一個函數 - 名稱明顯是不是的數據庫字段。

如果第二個可能,我真的不知道知道,但它肯定是ModelAdmin中心窗格的自定義字段。你可以子類GridFieldSortableHeader並嘗試修改它做你想做的。在靜態文檔012和DataObject::scaffoldSearchFields()的文檔中找到一個Squiz,以瞭解CMS本身如何實現它。

+0

有沒有辦法顯示函數ouput但使用db字段進行排序? –

+0

開箱即用,不,我不這麼認爲。但是我前一天想的是完全失去'$ searchable_fields'並使用純JS。一個GridField只是一個HTML'

',所以一個JS庫可以做排序客戶端。 這也可能與此相關:http://www.silverstripe.org/community/forums/customising-the-cms/show/16563 唯一的缺點是,如果編輯/刪除模型(s)是顯示在其他CMS用戶在CMS中發生的GridField中,直到下次您重新加載yur瀏覽器時纔會看到更改數據。分頁也可能會有點時髦。 – theruss

+0

好的,我會試試看。雖然我的頭像是類似的,但是可以用它來改變數據以適合你需要的格式,而不是使用js進行排序,但這是非常靜態的。 –