2017-09-13 12 views
1

GlassMapper로 NameValueList 콜렉션을 편집 가능하게 만들고 싶습니다.이 글의 맨 아래로 갈 수없는 것 같습니다.GlassMapper에서 NameValueCollection 목록을 편집하는 방법

필드에 연결할 수있는 유효성 검사 목록이 있으며 ExperienceEditor에서 유효성 검사 메시지를 편집 할 수 있습니다.

컬렉션 전처리 GlassMapper가 상품 검색시이다

= glassItem.GetValidations하는 검증을(); 내가 얻고

@foreach(Validation validation in Model.Validations) 
{ 
<div id="@validation.Identifier" ng-message="@validation.AngularKey" ng-cloak class="mtg-validation-msg">       
    @Html.Glass().Editable(validation, e => e.ErrorMessage) 
</div> 
} 

enter image description here

오류 :

실패 항목 해결 - 당신은 항목 ID를 나타내는 속성을 포함하지 않는 클래스를 저장할 수 없습니다. 적어도 하나의 속성에 Sitecore ID가 포함되도록 표시되어 있는지 확인하십시오. 유형 : MyAssembly.Models.Validation

enter image description here

답변

2

그것은 직접적 Treelist, Multilist 또는 이름 값 컬렉션과 경험 편집기에서 복잡한 필드의 특정 유형을 편집 할 수 없습니다.

대신 Edit Frame을 설정하고 사용해야합니다. 필드를 편집 할 수있는 모달 대화 상자가 표시됩니다.이 대화 상자는 인라인이 아니지만 환경 편집기를 벗어날 필요가 없음을 의미합니다. 이 문제에 대한 권장 방법입니다.

Glass Mapper를 사용하고 있으므로 since version 4 코드에서 직접 모든 프레임 편집을 선언 할 수 있으므로 먼저 Core 데이터베이스에서 먼저 선언/설정해야합니다. 당신은 this blog post에 관심이있을 수

@if (Sitecore.Context.PageMode.IsExperienceEditor) 
{ 
    using (Html.Glass().BeginEditFrame(Model, "Edit", x => x.Validations)) 
    { 
     <div>Edit Validations</div> 
    } 
} 

본인은 UX가 더 친절하게 편집 프레임 주위에 래퍼를 추가하는 방법에 대해 썼다.

+0

감사합니다. Kam,이 트릭을했습니다. 매우 감사! –