- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Silverstripe DataObject - 我想向当前类添加拖放排序,该类扩展数据对象,就像页面中存在的那样。因此,当删除时,它会更新该 View 中所有数据对象的 OrderBy 字段。我创建了这个类,一次可以自由编辑一个项目,但是简单的拖放排序会使它变得容易得多,但我目前在仅在页面上的 Dataobjects 上看不到任何此类扩展。
最佳答案
在 SilverStripe 3.1 中,有一些出色的模块可以为您提供此类功能。其中两个模块是 SortableGridField和 GridFieldExtensions .
要实现此功能,您需要安装这些模块之一,将排序字段添加到您的自定义 DataObject
类,并将模块排序对象组件添加到您的 GridFieldConfig
。
SortableGridField
模块专门允许对 GridField
上的对象进行排序。
要实现此功能,您需要将排序字段添加到您的自定义 DataObject
类,并将 GridFieldSortableRows()
作为组件添加到您的 GridField
。
对于以下示例,我将使用 HomePage
作为与 Slide
数据对象具有 has_many 关系的页面。
class Slide extends DataObject
{
private static $db = array (
'Title' => 'HTMLText',
'SortOrder' => 'Int'
);
private static $has_one = array (
'HomePage' => 'HomePage'
);
private static $summary_fields = array(
'Title' => 'Title'
);
private static $default_sort = 'SortOrder ASC';
private static $singular_name = 'Slide';
private static $plural_name = 'Slides';
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->removeByName('SortOrder');
return $fields;
}
}
class HomePage extends Page {
private static $has_many = array (
'Slides' => 'Slide'
);
public function getCMSFields()
{
$fields = parent::getCMSFields();
$slidesFieldConfig = GridFieldConfig_RecordEditor::create();
$slidesFieldConfig->addComponent(new GridFieldSortableRows('SortOrder'));
$slidesField = GridField::create(
'Slides',
'Slide',
$this->Slides(),
$slidesFieldConfig
);
$fields->addFieldToTab('Root.Slides', $slidesField);
return $fields;
}
}
GridFieldExtensions
模块包含 GridFieldOrderableRows
控制 GridField 的排序顺序,就像 SortableGridField
模块一样。它还具有其他有用的 GridField
工具。
要实现此功能,您需要将排序字段添加到您的自定义 DataObject
类,并将 GridFieldOrderableRows()
作为组件添加到您的 GridField
。
除了添加到 GridFieldConfig
的组件是 GridFieldOrderableRows
之外,您的代码与上面的示例类似:
public function getCMSFields()
{
$fields = parent::getCMSFields();
$slidesFieldConfig = GridFieldConfig_RecordEditor::create();
$slidesFieldConfig->addComponent(new GridFieldOrderableRows('SortOrder'));
...
}
关于drag-and-drop - Silverstripe DataObject - 拖放排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28844929/
在 SilverStripe 3 中,我有两个相关的数据对象,Order和 OrderItem . Order有很多OrderItems . OrderItem有一个 Order . 我在管理 Ord
当我从 ItemType 的子类实例调用此方法 DataObject.GetData(typeof(ItemType)) 时,该方法返回 null ... 我如何获得来自子类型的数据?谢谢 最佳答案
我有一个默认排序的 DataObject: class Author extends DataObject { private static $db = array('Name' => 'Va
我有一个在我的电脑上运行的宏。当其他人运行它时,它会抛出以下异常: "Run-time error '-2147221036 (800401d4)' DataObject:PutInClipboard
我正在尝试使用 _t() 方法翻译一个 DataObject。 我一直在 Pages 上使用它没有问题,但它似乎不适用于数据对象。 class SliderItem extends DataObjec
Silverstripe DataObject - 我想向当前类添加拖放排序,该类扩展数据对象,就像页面中存在的那样。因此,当删除时,它会更新该 View 中所有数据对象的 OrderBy 字段。我创
我有一个简单的 WebApi 项目来处理各种格式的返回数据。我正在尝试使用 KnockoutJs 在前端使用数据,但我有一个变量未定义的错误,我似乎无法理解为什么。下面是我正在处理的简单代码。请随时指
我传递给 DataMapper all 的字符串参数没有插入到最终查询中,并且查询已损坏: LeadEmail.all :email => 'gmail' 抛出以下错误: DataObjects::S
我正在尝试为 SilverStripe 站点做一些非常不同的事情:在几个子页面上是数据表,这些表每个都有自己的一组列标题,有些表的列比其他表多。我想避免在富文本编辑器中构建表格,因为这很容易出现很多错
我有一个页面,这个页面有很多,一个或没有评论。有一次我只想显示评论的数量,而不是遍历所有评论。然而,由于翻译需要区分评论计数的两个复数版本,所以简单调用 $Comment.Count 就不行了。由于翻
我的应用程序崩溃并出现以下错误: -[Data Object set ECGCount:]: unrecognized selector sent to instance 0x281671ad0 我试
这部分是咆哮,部分是真正的好奇心。有谁知道为什么System.Windows.Forms.DataObject's SetText(String)方法不接受空字符串作为参数?它声明这将抛出 Argum
所以我正在做一些业务逻辑并想运行一些代码 select id from blah where foo = 1234 for update nolock 当 blah 中的相应行被锁定时,此代码将抛出
我有 Azure 移动服务,它正在从单个(只需要这一张表的数据)wordpress wp_posts 表中获取数据。 在模型类中,我为主键定义了[Key]。表wp_posts只有一个PK 但我收到错误
是否可以创建一个新的 PayPal.Payments.DataObjects.TransactionResponse? 我目前正致力于将(我们的旧 ERP 系统)升级到 TLS 1.2,我需要覆盖返回
我不知道为什么 GetData() 方法需要一个 Type 的参数,我认为 Type 是指定对象应该是哪个类/类型的。我有一个名为 GraphicsPathWrap 的结构,通过实现 ISeriali
目前,对于有枚举的搜索字段,自动脚手架会生成一个下拉列表,只允许进行一个选择。我有兴趣使用现有过滤器来更改它以允许多项选择。 给定以下数据对象... class MyDataObject extend
我是 Silverstripe 的新手, 在 CMS 页面上,我可以添加一个下拉表单项,我看到我可以创建选项。但。我想要做的是从一个数组中填充下拉列表。我该怎么做? 数组看起来像这样: $dropdo
SilverStripe 的 DataObject 为我们提供了以下内容: ID - 主键 但是如何定义组合键(由2个或更多列组成的主键)呢?我已经搜索了文档,但在任何地方都找不到此信息。 最佳答案
我正在尝试为我的 NetBeans 模块实现 NavigatorPanel。现在,只要关联的 DataObject 被修改,我总是会收到通知,以便我可以调用解析器并更新导航器。 我尝试向 DataOb
我是一名优秀的程序员,十分优秀!