logo

[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 для создания собственных форм объектов и документов.