2009-09-18 2 views
1

FormView 컨트롤러 내에있는 'repScore'라는 리피터 컨트롤러를 찾을 수 없습니다.FormView 내부에서 리피터를 찾을 수 없습니다.

이 내 코드입니다 :

<asp:FormView runat="server" id="fwHotelDetails" DataKeyNames="id" OnDataBound="fwHotelDetails_DataBound" > 
    <ItemTemplate> 
     // (..) some code here which outputs some data 

     <asp:Repeater runat="server" id="repScore"> 
      <ItemTemplate> 
      <span class="item"> <%# Eval("criteria") %>:</span> 
      </ItemTemplate> 
     </asp:Repeater> 

    </ItemTemplate> 
</asp:FormView> 

그리고이 뒤에 내 코드입니다 : 내가 잘못 뭐하는 거지

protected void fwHotelDetails_DataBound(object sender, EventArgs e) 
    { 
     Repeater rep = (Repeater)fwHotelDetails.FindControl("repScore"); 

     rep.DataSource = this.dtCriteria; 
     rep.DataBind(); 
    } 

?

+0

위의 코드가 작업 코드를 반영하도록 편집 된 경우 게시물에서 해당 코드를 사용해야합니다. – GFoley83

답변

2

내가 formView가 바인딩 된 이벤트를 발생시키는 것을 볼 수 없습니다, 당신은 이벤트 핸들러를 선언 잊지 않았다?

+0

당신은 절대적으로 옳습니다. 그래서 OnDataBound = "fwHotelDetails_DataBound"를 추가했습니다. 이제 다음과 같은 오류 메시지 : CS1061 : 'ASP.templates_hoteldetails_aspx는'fwHotelDetails_DataBound '에 대한 정의없이 확장 메서드'fwHotelDetails_DataBound '유형'ASP.templates_hoteldetails_aspx '의 첫 번째 인수를 받아들이는 포함되어 있지 않습니다 볼 수 있습니다 (누락되는 지시어 또는 어셈블리 참조 사용) – Steven

+0

머리를 주셔서 감사합니다. 함수가 비공개로 설정되었으므로 오류가 발생했습니다. 대신 Protected를 사용하면 효과적입니다. – Steven

1

내가 코멘트 아직 없습니다 ... 그래서 여기 간다 : ("보호"하기 위해 "개인"을 변경

기본적으로 그것은 당신이 선언 된 메소드에 액세스 할 수 없습니다 의미 ...

을 또는 '내부'또는 '공개'가 필요한 항목에 달려 있음) 도움이됩니다.