2009-06-28 13 views
3

リピータのアイテムのチェックボックスをページ移動の直前(ページ番号)にして、その場所に保存しようとしています。リピータのアイテムを取得する

foreach (RepeaterItem ri in rpt.Items) 
    {   
     CheckBox box = (CheckBox)ri.FindControl("chkBox"); 
     if (box.Checked) 
     { 
      ... 
     } 
    } 

問題はどこからこの関数を呼び出すのですか? 私は(私がリピーターを移入するためにObjectDataSourceを使用)とObjectDataSource1_Selecting ObjectDataSource1_Selectedからそれを呼び出すことを試みましたが、rpt.Items.Countも0

rpt_PreRender()イベントで、項目の右の数を返しますが、それは前に起こりますチェックボックスの選択と後の選択。

私は何ができますか?

+0

はItemDataBoundリピータのイベントで試してみてください。 – Darnell

答えて

7

あなたが探している方法が可能ではない... plzはこのコードを使用してみてください...

if (Repeater1.Items.Count > 0) 
    { 
     for (int count = 0; count < Repeater1.Items.Count; count++) 
     { 
      CheckBox chk = (CheckBox)Repeater1.Items[count].FindControl("CheckBox1"); 
      if (chk.Checked) 
      { 

      } 
     } 
    } 
0

リピータにはGridViewやその他の複雑なコントロールのようにページネーションが組み込まれていないため、PageIndexChangingなどのイベントは提供されません。私はあなた自身のページナビゲーション実装を持っていると仮定します。したがって、実装された関数内で提示した関数を呼び出す必要があります。

質問がページングとは無関係だった場合、私は単にItemDataBound/ItemCreatedイベントを提案していたでしょう。

+0

ポケットベル機能の中でポストバックが発生し、ポストバックが原因でリピータがクリアされるため、それを私のページ機能内で呼び出すことはできません。 –

+0

ITemDataboundイベントは各アイテムに対して機能し、すべてのアイテムに対して一度に行います。 –

関連する問題