2011-07-01 21 views
1

に文字列でリピーターを取得する私はでASP.NET

for(int i = 0; i < 5; i++) 
    // get the repeater like FindRepeater("repeater"+i) and bind it 

のようにそれらにアクセスしたい

など「repeater1」、「repeater2」のようなaspxページでリピーターの束を、持っています私が試したPage_Loadのコードの後ろ

Repeater repeater = (Repeater)this.FindControl("repeater"+i) 

しかし、私はリピーターにコントロールをキャストできないと言います。

どうすればいいですか?

+0

私は答えがありません。それはうまくいくはずです。しかし、私はそれが文字列にintを追加していることをdisconserting見つける。 Try String.Format( "repeater {0}"、i) – stephenbayer

答えて

2

私はあなたの同じコードを実行しています(i tostring()を変換することを除いて)、そしてその建物は正常です。あなたはこれを試すことができます。..

Repeater repeater = this.FindControl("repeater"+i.ToString()) as Repeater; 
+0

これは私のコメントで似たようなことです。私は決してそれをしないので、整数と文字列の連結を使用する場合、私は何が起こるかわからない。私は通常この場合、String.Format( "repeater {0}"、i)とします。 – stephenbayer

+0

"リピーター" + i.ToString() "リピーター"と同じです+私はどんなタイプでも、オーバーロードはToStringを呼び出します –

+0

うわー、私はそれをしたことは分かりませんでした。 Thx ^^ –

0

あなたのページには、マスターページを使用している場合は、次を使用する必要があります。

体がContentPlaceHolderIdある
Repeater rptr = (Repeater)this.Master.FindControl("body").FindControl("repeater" + i); 

。さらに、リピーターがユーザーコントロール内にある場合は、次の操作を行う必要があります。

Repeater rptr = (Repeater)this.Master.FindControl("body").FindControl("MyUserControl").FindControl("repeater" + i);