我正在使用modeladmin來顯示一些事件DataObjects。。在modeladmin中修改gridfieldconfig以添加可排序標頭
我在客戶希望能夠排序的摘要字段中添加了許多列。目前,只有標題默認排序。可以在modeladmin中修改gridfieldconfig嗎?特別是要將字段添加到GridFieldSortableHeader?
這裏是我的事件數據對象與我需要能夠在的ModelAdmin排序依據的摘要字段:
......
static $summary_fields = array('Title', 'DescriptionSummary', 'EventStartDate', 'EventEndDate', 'EventVenue');
static $field_labels = array('DescriptionSummary' => 'Description', 'EventStartDate' => 'Start Date', 'EventEndDate' => 'End Date', 'EventVenue' => 'Venue');
private $widget;
//TO GET THE SUMMARY FIELD VALUES
public function getEventVenue(){
if ($eventVenue = $this->Venue()->Title) return $eventVenue;
return "No Venue specified";
}
public function getEventStartDate(){
if ($startDate = DataObject::get_one('CalendarDateTime', 'EventID = '.$this->ID)) return $startDate->StartDate;
return "No start dates specified";
}
public function getEventEndDate(){
if ($startDate = DataObject::get_one('CalendarDateTime', 'EventID = '.$this->ID)) return $startDate->EndDate;
return "No end dates specified";
}
....
和我的事件管理:
class EventAdmin extends ModelAdmin {
public static $managed_models = array('CalendarEvent', 'Venue', 'EventCategory');
static $url_segment = 'events';
static $menu_title = 'Events';
}
我沒有時間現在正確回答這個問題,但爲了指出正確的方向,您需要重寫'EventAdmin'類中的'getEditForm()'函數。 – drzax
太棒了。謝謝你。這讓我得到我需要的東西。我嘗試了新的GridFieldSortableHeader('DescriptionSummary'),認爲這將允許我通過單擊標題來對描述列進行alpha排序,但它只是創建了一個只有Title可以再次排序的標題行。有任何想法嗎?謝謝 – Fraser