2009-09-18 7 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がDataBoundイベントを発生させることがわかりませんが、declareイベントハンドラを忘れていませんか?

+0

あなたは絶対に正しいです。そこで私はOnDataBound = "fwHotelDetails_DataBound"を追加しました。 CS1061: 'ASP.templates_hoteldetails_aspx'に 'fwHotelDetails_DataBound'の定義がなく、 'ASP.templates_hoteldetails_aspx'型の最初の引数を受け入れる拡張メソッド 'fwHotelDetails_DataBound'が見つかりませんでした。ディレクティブまたはアセンブリ参照を使用していますか?) – Steven

+0

あなたの頭のおかげで。その機能がプライベートに設定されているので、私はそのerrormessageを持っています。代わりにProtectedを使用すると、うまくいきました。 – Steven

1

私はコメントはまだできません...ので、ここでそれが行く:(「保護」を「プライベート」に変更

基本的に、それはそれはあなたが宣言されたメソッドへのアクセスを持っていないことを意味...

を「内部」または「パブリック」は、必要なものに依存します)が役立つはずです。