Récupérer une cellule d'un tableau d'un Repeater
Bonsoir :P
J'ai un repeater qui me crée un tableau à partir d'une source en xml, dont une partie du code est ci-dessous, le tout mis dans un "table" pour avoir la forme d'un tableau.
Je crée aussi, à chaque ligne, un bouton "voir" qui devra afficher le contenu de la ligne ... et le souci ben je n'arrive pas à récupérer le contenu de la ligne, même pas d'une cellule du tableau, j'obtiens une erreur de cast ... oO
Citation:
Impossible d'effectuer un cast d'un objet de type 'System.Web.UI.HtmlControls.HtmlTableCell' en type 'System.Web.UI.WebControls.TableCell'.
Merci d'avance !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <asp:Repeater ID="Rp1" runat="server" OnItemDataBound="Repeater1_ItemDataBound"
OnItemCommand="Repeater1_ItemCommand">
<HeaderTemplate>
<table border="1">
....
<ItemTemplate>
<tr>
<td><asp:Button ID="Button1" runat="server" Text="Voir" /></td> <%--OnClick="btnInsert_Click"--%>
<td runat="server" id="num"><%# DataBinder.Eval(Container.DataItem, "num")%></td>
<td runat="server" id="date"> <%# DataBinder.Eval(Container.DataItem, "date")%></td>
<td runat="server" id="titre"> <%# DataBinder.Eval(Container.DataItem, "titre")%></td>
<td runat="server" id="desc"> <%# DataBinder.Eval(Container.DataItem, "desc")%></td>
<td runat="server" id="rem"><%# DataBinder.Eval(Container.DataItem, "rem")%></td>
<td><asp:Label ID="etat" runat="server" ></asp:Label></td>
</tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
ListItemType rowType = (ListItemType)e.Item.ItemType;
if (rowType == ListItemType.Item || rowType == ListItemType.AlternatingItem)
{
TableCell cell = (TableCell)e.Item.FindControl("num");
}
}
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Button btnInsert = (Button)e.Item.FindControl("Button1");
if (btnInsert != null)
{
RepeaterItem ri = btnInsert.Parent as RepeaterItem;
if (ri != null)
{
btnInsert.CommandArgument = ri.ItemIndex.ToString();
}
}
Label etat = (Label)e.Item.FindControl("etat");
if (etat != null)
etat.Text = "TEST";
}
} |