2016-04-11 31 views
0

Merhaba, bu sorunu yaşadım.Dinamik olarak eklenen denetimlerin doğrulayıcılarını kaldırma

İlk hücrede dinamik olarak oluşturulan denetimler (TextBox), ikinci hücrede (MyCustomButton) düğmesi ve son hücrede doğrulama denetimi (RegularExpressionValidator) ile doldurulmuş satırlar içeren bir tablom var. Doğrulama denetleyicisi, TextBox'taki verilerin doğru olup olmadığını kontrol eder. Düğmenin işlevi, bu düğmeyi, metin kutusunu ve doğrulayıcıyı içeren satırı kaldırmaktır. i söyleyerek açılır o istisna ait olduğu satırı kaldırmak için bu düğmeyi tıkladığınızda

Benim sorundur "kontrol kimliği bulmak için açılamıyor 'MyTextBoxId' 'ControlToValidate' tarafından başvurulan".

Burada sorun gidericinin kaldırıldığından ve bu özel durumun açıldığından doğrulamak için TextBox öğesinin doğru olduğunu bulamıyor. İlk önce bu doğrulayıcıyı kaldırmayı denedim ve bu satırın geri kalanından sonra, TextBox'ta yanlış verileri temizleyin, bu TextBox'un onaylanmasını kapatın, ancak onaylayıcı kaldırıldıktan sonra bile bu istisnayı hala alıyorum.

Tablo yönteminden çıkarma

protected void DeleteMemberRow_Click(object sender, EventArgs e) 
    { 
     //Find row to remove 
     TableRow row = (TableRow)((MyCustomButton)sender).Parent.Parent; 

     //Custom list of controls - works fine 
     ControlsList.RemoveAll(x => x.id == row.ID.Replace("row", "")); 

     //MyTable is basic Table type 
     MyTable.Rows.Remove(row);    
    } 

ekleme tablo satırları

 Guid guid = Guid.NewGuid(); 

     TextBox txt = new TextBox(); 
     MyCustomButton btn = new MyCustomButton(); 
     btn.Click += new System.EventHandler(DeleteMemberRow_Click); 
     btn.ID = "TeamMember" + guid + "btn"; 
     txt.ID = "TeamMember" + guid; 
     RegularExpressionValidator validate = new RegularExpressionValidator(); 
     validate.ValidationExpression = @"(\d{5}, ?)*\d{5}"; 
     validate.ErrorMessage = "My error message"; 
     validate.Attributes.Add("runat", "server"); 
     validate.ControlToValidate = "TeamMember" + guid; 
     validate.Attributes.Add("Display", "none"); 

     TableRow tRow = new TableRow(); 
     tRow.ID = "Teammember" + guid + "row"; 
     TableCell tCell2 = new TableCell(); 
     TableCell tCell = new TableCell(); 
     TableCell tCell1 = new TableCell(); 

     tCell2.Controls.Add(validate); 
     tCell1.Controls.Add(btn); 
     tCell.Controls.Add(txt); 
     tRow.Cells.Add(tCell); 
     tRow.Cells.Add(tCell1); 
     tRow.Cells.Add(tCell2); 

     MyTable.Rows.Add(tRow); 

bir Yardım takdir. Teşekkürler

+0

Sayfanızı yükleme olayınızı gösterir misiniz? –

cevap

0

Tamam, onunla ilgili bir sorun yoktu ama benimle sorun vardı. Ben aynı TextBox kontrol başka bir doğrulayıcı aldım ki fark ettim, böylece diğerini silmek için TextBox bulmak için başarısız oldu.