我知道 Orchard 有内置的 DateTime 字段,我知道我可以通过将 DataTimeFieldPart 添加到我的自定义部分来使用它。但是我的日期时间字段属于“事件部分记录”实体,我希望它们存储在一个表中。我面临的问题是自定义部分的编辑器视图 - 我的 datetime 属性呈现为文本输入,但我希望它呈现像 jquery timepicker 或至少具有 datetime 类型的输入。
是否需要添加所有日期时间属性,如单独的日期时间部分?如我所见,我可以使用日期时间选择器的唯一方法是将其手动添加到编辑器视图中。对我来说这很奇怪,因为 Orchard 在日期时间部分提供了日期时间选择器功能。
我想我错过了一些理想的逻辑问题。
//Event Type
SchemaBuilder.CreateTable("EventPartRecord",
table => table
.ContentPartRecord()
.Column<string>("Name")
.Column<DateTime>("StartDateTime")
.Column<DateTime>("PlanedEndDateTime", c=>c.Nullable())
.Column<DateTime>("EndDateTime", c => c.Nullable())
.Column<string>("EventRules")
.Column<string>("Comment")
.Column<bool>("IsFinished")
.Column<int>("CompetitionPartRecord_Id")
);
ContentDefinitionManager.AlterPartDefinition("EventPart",
builder => builder.Attachable()
.WithField("Competitors",f => f
.OfType("ContentPickerField")
.WithSetting("Multiple","true"))
);
这是我的编辑观点:
<div class="editor-label">
@Html.LabelFor(model => model.PlanedEndDateTime)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.PlanedEndDateTime)
@Html.ValidationMessageFor(model => model.PlanedEndDateTime)
</div>