Comment ajouter un < td > tag vers ListViewItem?
-
03-07-2019 - |
Question
Je souhaite implémenter une apparence comme cet article mentionné à l'aide de l'option ListView imbriquée. contrôle. Cependant, dans mon scénario, je ne peux pas utiliser le contrôle EntityDataSource, je lie donc les données manuellement.
Ma table:
Categories
PK: UniqueId, Guid
Name, string
ParentId, Guid
<asp:ListView ID="CategoryList" runat="server"
onitemdatabound="CategoryList_ItemDataBound">
<LayoutTemplate>
<table>
<asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td colspan="2"><%# Eval("Name") %></td>
</tr>
</ItemTemplate>
</asp:ListView>
protected void Page_Load(object sender, EventArgs e)
{
using (PractiseEntities context = new PractiseEntities()) {
var result = from categories in context.Categories
select categories;
CategoryList.DataSource = result;
CategoryList.DataBind();
}
}
Je souhaite que la sous-catégorie ait un retrait en ajoutant une balise < td >
à l'élément qui "ParentId". est non nulle. Et ma question est de savoir comment éditer les balises HTML générées dans l'événement ItemDataBound?
La solution
Vous pourriez avoir quelque chose comme ça:
<ItemTemplate>
<tr>
<td colspan="2"><%# GetParentContent(Eval("ParentID")) %></td>
</tr>
</ItemTemplate>
dans le code-behind:
protected string GetParentContent(object ParentID)
{
if(ParentID!=null)
... return parent HTML ...
else
return "";
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow