2014-09-02 1 views
1

Kentico 7에서 어떤 대체 양식이 제출되는지에 따라 작업을 수행하려고합니다.프로그래밍 방식으로 Kentico 대안 양식 속성에 액세스

public partial class CMSModuleLoader 
{ 
    private class ObjectEventsAttribute : CMSLoaderAttribute 
    { 
     public override void Init() 
     { 
      ObjectEvents.Insert.Before += My_Create_Account_Page; 

     } 

     private void My_Create_Account_Page(object sender, ObjectEventArgs e) 
     { 
      if (e.Object is BizFormItem && e.Object != null) 
      { 
       BizFormItem formEntry = (BizFormItem)e.Object; 

       BizFormInfo form = formEntry.BizFormInfo; 

       if (form.FormName == "MyOpenAccount") 
       { 
        // somehow determine which alternative form this is 

        // do stuff with the fields in that alternative form 
       } 
      } 
     } 
    } 
} 

필자는 문서를 위 아래로 내려 왔으며 아무런 해결책도 찾지 못했습니다. alt의 기본값을 제공 할 필드를 추가 할 수 있습니다. 양식 이름이지만 편집인이 해당 필드를 삭제할 때까지 나를 열어 주며 다른 필드가 대체 양식에 있는지 알려주지 않습니다. 다른 아이디어?

답변

1

ObjectEvents 접근 방식을 사용하는 경우 대체 양식 이름에 액세스 할 수 없습니다. 그러나이 정보는 "온라인 양식"(BizForm) 웹 파트에서 알 수 있습니다. 따라서 사용자 정의하거나 사본을 만들어야 할 것입니다. Bizform 컨트롤은 AlternativeFormFullName 속성을 가지고 있으며 OnAfterSave과 같은 이벤트 중 하나를 연결할 수 있습니다.

+0

우리는 어쨌든 그 문자열을 사용하여 대체 양식에 속한 필드를 얻을 수 있다면 유용 할 수 있습니다. 이 시점에서 나는 이것이 가능하지 않다고 생각하고 있습니다. – user1269310

+0

확실히 가능합니다. 'AlternativeFullName' 프라퍼티를 포함하고있는 같은 컨트롤은 (일단 bizform이로드되면) 폼/대체 폼의 필드를 포함하는'Fields' 프라퍼티를 가지고 있습니다. – mivra

+0

올바르게 기억하면 폼의 필드를 제공하지만 내 (잘 설명되지 않은) 목표 인 대체 필드에서 어떤 필드가 사용되는지는 알려주지 않습니다. 그래도 고마워. – user1269310

관련 문제