[ELMA3] Настройка отображения в веб-части добавленных полей расширенного объекта Проект
Для настройки отображения в веб-части добавленных полей расширенного объекта «Проект» необходимо скопировать файл разметки Create.cshtml (форма создания и редактирования) из папки ELMA3-Standart\Web\Modules\EleWise.ELMA.Projects.Web\Views\Project в папку ELMA3-Standart\UserConfig\WebApplication\Modules\EleWise.ELMA.Projects.Web\Views\Project (если какой-то из папок нет, ее необходимо создать) и файл разметки CommonInfo.cshtml (форма просмотра) из папки ELMA3-Standart\Web\Modules\EleWise.ELMA.Projects.Web\Views\Shared\Project в папку ELMA3-Standart\UserConfig\WebApplication\Modules\EleWise.ELMA.Projects.Web\Views\Shared\Project (если какой-то из папок нет, ее необходимо создать).
Форма создания и редактирования
Чтобы добавить свойство объекта Проект на форму создания и редактирования, необходимо в файле Create.cshtml добавить строку:
@Html. EditableProperty(“Entity.NovoeSvoystvo”)
В нашем случае мы добавляем данную строку между датой окончания проекта и менеджером.
<table class="table_with_inputs">
@Html.EditableProperty(m => m.Entity.Name, a => a.Html.style.width = "400px")
<tr>
<td>@SR.T("Шаблон")</td>
<td>
@if (Model.IsAvailableViewProjectTemplate)
{
@Html.ActionLink(Model.ProjectTemplateName, "AllInfo", "ProjectTemplate", new { area = ProjectAreaRegistration.AREA_NAME, id = Model.ProjectTemplateId }, null)
}
else
{
@Html.Display(m => m.ProjectTemplateName)
}
</td>
</tr>
@Html.EditableProperty(m => m.Entity.StartDate, a => a.Required = true)
@Html.EditableProperty(m => m.Entity.FinishDate, a => a.Required = true)
@Html.EditableProperty("Entity.NovoeSvoystvo")
@if (Model.AllowChangeLifeCycle)
{
@Html.EditableProperty(m => m.Entity.LifeCycle, a => a.Required = true)
}
@Html.EditableProperty(m => m.Entity.Manager, a => { a.Required = true; a.EntityFilterProvider = ProjectMembersFilterProvider.UID; })
</table>
При таком написании свойство Новое свойство, созданное нами в объекте Проект, будет доступно для редактирования, но не обязательно для заполнения. Выглядеть это будет так:

Чтобы сделать данное поле обязательным для заполнения, необходимо написать так:
@Html. EditableProperty(“Entity.NovoeSvoystvo”, a => a.Required = true)
Выглядеть это будет так:

Если необходимо задать ширину строкового поля, то:
@Html.EditableProperty("Entity.NovoeSvoystvo", a => {a.Required = true; a.Html.style.width = "400px";})

Форма просмотра
Чтобы добавить свойство объекта Проект на форму просмотра, необходимо в файле CommonInfo.cshtml добавить строку:
@Html.Property("NovoeSvoystvo")
В нашем случае мы добавляем данную строку между датой окончания проекта и менеджером.
<table width="100%" class="project-viewGroup">
@if (!isTemplate)
{
<tr>
<td>@SR.T("Стадия")</td>
<td>
@if (Model.ProjectLifeCycleStage != null)
{
<span>@Html.Display(m => m.ProjectLifeCycleStage)</span>
}
</td>
</tr>
}
@Html.Property(m => m.StartDate)
@Html.Property(m => m.FinishDate)
@Html.Property("NovoeSvoystvo")
@Html.Property(m => m.Manager)
@if (Model.Manager != currentUser && Model.CreationAuthor != null)
{
@Html.Property(m => m.CreationAuthor, a => a.Name = SR.T("Автор"))
}
@Html.Property(m => m.Contractor)
@if (isTemplate && Model.LifeCycle != null)
{
@Html.Property(m => m.LifeCycle, a => a.Name = SR.T("Жизненный цикл"))
}
</table>

Более подробно о разметке Razor можно почитать в статье Использование разметки Razor для создания собственных форм объектов и документов.