lupital
lupital

Reputation:

Get Repeater's Items

I am trying to get all repeater's selected checkboxes of repeater's item just before page movement (pagination), and store them in some place.

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

The problem is where do i call this function from? I've tried to call it from ObjectDataSource1_Selected (I use objectdatasource to populate repeater) and ObjectDataSource1_Selecting but rpt.Items.Count is also 0.

rpt_PreRender() event, returns the right number of items but it happens before the selection of checkboxes and not after.

What can i do?

Upvotes: 3

Views: 22273

Answers (2)

Muhammad Akhtar
Muhammad Akhtar

Reputation: 52241

the way you are looking is not possible...plz try using this code...

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)
            {

            }
        }
    }

Upvotes: 7

Cerebrus
Cerebrus

Reputation: 25775

The Repeater does not have built-in Pagination (like the GridView or other complex controls) so it does not offer events such as the PageIndexChanging. I assume therefore, that you have your own Page navigation implementation. You should therefore call the function you have presented within that implemented function.

If the question was unrelated to Paging, I'd have simply suggested the ItemDataBound/ItemCreated events.

Upvotes: 0

Related Questions