Comment Trouver des td à partir de la répétition en C#?
Je suis ont td en répéteur. je veux montrer et de le cacher à la condition, j'ai utilisé le code ci-dessous:
Mon HTML code est:
<table cellpadding="0" cellspacing="0">
<tr valign="top" class="list_heading">
<td width="50%">
Column
</td>
<td width="20%">
Operation
</td>
<td width="19%" style="display: none;">
And/Or
</td>
<td width="20%">
Value
</td>
<td width="20%" id="tdvalue2Header" visible="false" runat="server">
Value2
</td>
<td width="10%">
Remove
</td>
</tr>
<tbody>
<asp:Repeater ID="rpSearchItems" runat="server" OnItemDataBound="rpSearchItems_ItemDataBound">
<ItemTemplate>
<tr>
<td style="display: none;">
</td>
<td>
<%# Eval("DisplayName") %>
</td>
<td>
<%# Eval("Operation") %>
</td>
<td style="display: none;">
<%# Eval("AndOr") %>
</td>
<td>
<%# Eval("Value") %>
</td>
<td id="tdValue2" runat="server">
<%# Eval("Value2") %>
</td>
<td align="center">
<asp:ImageButton ID="ibtnRemoveSearchItem" ImageUrl="~/Admin/Images/delete_icon.png"
CommandArgument=' <%# Eval("Id") %>' CssClass="RemoveUitem" ToolTip="Remove Item"
runat="server" OnClick="ibtnRemoveSearchItem_Click" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
<tr valign="top" class="list_bottom">
<td colspan="6">
</td>
</tr>
</table>
Et voici le item_dataBound code:
protected void rpSearchItems_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView drv = e.Item.DataItem as DataRowView;
//HtmlTableCell tdValue2 = (HtmlTableCell)rpSearchItems.FindControl("tdValue2");
TableCell tdValue2 = (TableCell)rpSearchItems.FindControl("tdValue2");
if (drv.Row["Value2"].ToString() != "")
{
tdvalue2Header.Visible = true;
hdfShowSecondValueColumn.Value = "11";
if (tdValue2 != null)
{
tdValue2.Visible = true;
}
}
else
{
if (hdfShowSecondValueColumn.Value != "11")
{
tdvalue2Header.Visible = false;
if (tdValue2 != null)
{
tdValue2.Visible = false;
}
}
}
}
}
toujours tdValue2 je suis nulle, je ne sais pas où c'est que je suis dans l'erreur, s'il vous plaît aider moi.
FindControl("tdValue2")
ne pas rechercher de manière récursive.OriginalL'auteur Ram | 2013-08-09
Vous devez vous connecter pour publier un commentaire.
FindControl
ne peut trouver des enfants directs du contrôle. Dans ce castdValue2
est un enfant d'une répétition de l'élément, et non pas la répétition elle-même. En outre<td runat="server">
correspond à un contrôle côté serveurHtmlTableCell
(comme cela a déjà été précisé dans vous code commenté). De sorte que la ligne correcte devrait être:OriginalL'auteur Andrei
Pour trouver le premier exemple, vous pouvez utiliser
OriginalL'auteur christiandev