2013-06-06 2 views
1

Umbraco 6.0.6 편집기에서 .NET User Control 매크로를 사용하려고하지만 formview 컨트롤을 사용하여 page_load에서 컨트롤에 액세스 할 수 없습니다. 행사.Umbraco - 바인딩 컨트롤이있는 편집기에서 .net 매크로 사용

예 :

ASCX :

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="teste.ascx.vb" Inherits="usercontrols_teste" %> 
<asp:FormView ID="FormView1" runat="server" DefaultMode="Insert"> 
    <InsertItemTemplate> 
     <asp:TextBox ID="txt_name" runat="server"></asp:TextBox> 
    </InsertItemTemplate> 
</asp:FormView> 

CODE-FILE :

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    FormView1.DefaultMode = FormViewMode.Insert 
    CType(FormView1.FindControl("txt_name"), TextBox).Text = "name" 
End Sub 

MasterPage 템플릿 :

<form id="form1" runat="server">  
    <umbraco:Item ID="Item1" field="conteudoPagina" runat="server"></umbraco:Item> 
</form> 

결과가 없습니다로 설정된 "개체 참조입니다 ob의 인스턴스 ject. " CType (FormView1.FindControl ("txt_name"), TextBox). 텍스트 = "이름"

이것은 웹에서 컨트롤을 정상적으로 사용하면 umbraco 편집기에서 컨트롤을 렌더링 할 때만 발생합니다 페이지 또는 masterpage 괜찮습니다.

누구나 같은 결과가 있습니까?

감사합니다.

+0

일주일 전에이 질문에 답을했습니다. 바라기를 나의 대답은 아직도 도움이된다! 귀하의 프로젝트에서 FindControlRecursive 도우미 메서드를 포함하는 것이 좋습니다. 나는 항상 그것을 사용한다. – trnelson

답변

0

이 동일한 문제가 발생했습니다. 컨트롤이 편집기의 다른 컨테이너에 중첩되어 표준 FindControl()이 해당 컨트롤을 찾지 못하기 때문에 이러한 현상이 발생합니다.

내 모든 프로젝트에 릭 Strahl의 재귀의 FindControl() 헬퍼 메소드를 구현했습니다 그것은 보통 문제 해결 : http://www.west-wind.com/weblog/posts/2006/Apr/09/ASPNET-20-MasterPages-and-FindControl

보통 내가 정적 ControlHelper 클래스에 넣어 그래서 같이 호출 :

((TextBox)ControlHelper.FindControlRecursive(this, "txt_name")).Text = "name"; 

선택적으로 매크로 설정에서 "편집기에서 컨트롤 렌더링"옵션을 해제 할 수 있습니다. 대부분의 내 매크로는 프리젠 테이션을 편집기에 표시 할 필요가 없으므로 99 %의 시간 동안이 기능을 해제합니다.

관련 문제