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;
}
+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. –