2010-12-04 28 views
0

En utilisant l'exemple ci-dessous, , comment utiliser le datalist "DL_Pro_Result" pour trouver le datalist "DL_Gro_Result" en C#?Comment est-ce que j'utilise un contrôle datalist pour trouver son datalist d'enfant dans C#?

Par exemple dans le code suivant, la valeur dlii est nulle, même si dli! = Null.

DataList dli = (DataList)Page.FindControl("DL_Pro_Result"); 
DataList dlii = (DataList)dli.FindControl("DL_Gro_Result"); 

Merci.

<div id="ProList"> 
<asp:DataList ID="DL_Pro_Result" runat="server"> 
<HeaderTemplate> 
<table id="T_Pro_Result_Header" runat="server"> 
<tr> 
<td> 
<asp:Label ID="L_Pro_Result_Header" runat="server"></asp:Label> 
</td> 
</tr> 
</table> 
</HeaderTemplate> 
<ItemTemplate> 
<table id="T_Pro_Result_Item" class="table" runat="server"> 
<tr> 
<td> 
<asp:Label ID="L_Pro_Result_Item" runat="server"></asp:Label> 
<asp:Button ID="B_Pro_Result_Item_1" OnClick="B_Pro_Result_Item_1_Click"/> 
</td> 
</tr> 
<tr> 
<td> 
<asp:DataList ID="DL_Gro_Result" runat="server"> 
+0

vous suggère de prendre le temps de Désindenter votre code de sorte qu'il est un peu plus lisible. – meagar

+0

Sacré merde, un tag [system.web.ui.webcontrols]? – BoltClock

Répondre

0

Solution:

DataList dli = (DataList)Page.FindControl("DL_Pro_Result"); 
foreach (Control child in dli.Controls) 
{ 
    foreach (Control child1 in child.Controls) 
    { 
    try 
    { 
    if ((DataList)child1.FindControl("DL_Gro_Result") != null) 
    { 
    DataList dli = (DataList)child1.FindControl("DL_Gro_Result"); 
    } 
    } 
    catch (Exception e) 
    { 
    Trace.Warn("Exception!!", e.ToString() + "Trying next iteration"); 
    } 
    } 
}