2013-07-04 16 views
6

onay kutularını bir liste ile tekrarlayıcı kontrol aşağıdaki mı bir onay kutusu ve sil'i tıklattığınızda, kod onay kutusunu bulur, ancak işaretlemeden işaretli olarak okur ve öğeyi silmez.Alma tekrarlayıcı öğesi onay kutusu değerleri

Herhangi bir fikrin var mı?

+0

+1 bakınız. Değerleri saklamak için tekrarlayıcıda gizli bir alan kullanmayı düşünmemiştim. Daha fazla oy verebilirsem, yapardım. –

cevap

10

% 100 emin değil, ancak her sayfa yüklemesinde veri bağlama yapıyor musunuz? Yalnızca, !IsPostBack numaralı bağlama bağlamayı deneyin Bu tür sorunlarla karşılaştığımda, Sayfa Yükleyicisi, yineleyicinin geçerli tüm durumu yeniden bağlamanıza ve son durumuna getirmesine neden olduğu için,

+0

Lol, okul çocuğu hatası. Evet, veri sayfası yüklenirken ve durumu öldürüyordu. Teşekkürler – HuwD

+0

** + 1 ** İyi yakalama –

0

Bir güncelleştirme panelinde yineleyici vardı. Bir sayfanın onun parçası olmayan eğer çalışmıyor hakkında

foreach (RepeaterItem item in rpLists.Items) 
       { 

        if (item.Controls.Count > 0) 
        { 
         DataBoundLiteralControl dbLt = item.Controls[0] as DataBoundLiteralControl; 
         if (dbLt != null) 
         { 
          var controlCollection = this.ParseControl(dbLt.Text); 
          HtmlInputCheckBox cbInclude = (HtmlInputCheckBox) FindControl(controlCollection, "cbIncludeList"); 
          if (cbInclude != null) 
          { 
           if (cbInclude.Checked) 
           { 
            //your code here 
           } 
          } 
         } 
        } 
       } 

Ben FindControl için bir özyinelemeli yöntem oluşturmak zorunda şey: Yani RepeaterItem tek kontrol Bu benim için çalışan bir DataBoundLiteralControl

oldu. silkmek harikaları burada ASP.Net FindControl is not working - How come?

private Control FindControl(Control parent, string id) 
     { 
      if (parent.ID == id) 
       return parent; 

      if (parent.HasControls()) 
      { 
       foreach (Control childControl in parent.Controls) 
       { 

        if (childControl.ID == id) 
         return childControl; 

        if (childControl.HasControls()) 
         return FindControl(childControl, id); 
       } 

      } 

      return null; 
     }