Je ne peux pas afficher les icônes de fichier en fonction des extensions de fichiers dans asp.net GridView.C# Affiche les icônes de fichier dans asp.net sur GridView imbriqué
La structure de GridView est nested
Je n'ai pas d'erreur, mais la colonne de GridView pour afficher des icônes est vide.
Mon code ci-dessous.
Pouvez-vous m'aider?
Merci d'avance pour toute aide, vraiment appréciée.
.cs
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string root = @FilePath;
string folder = GridView2.DataKeys[e.Row.RowIndex].Value.ToString();
GridView gvOrders = (GridView)e.Row.FindControl("gvOrders");
DirectoryInfo directory = new DirectoryInfo(root + "/" + folder);
FileInfo[] fileInfo = directory.GetFiles("*.*",
`SearchOption.AllDirectories);
foreach (GridViewRow gvr in gvOrders.Rows)
{
LinkButton lnkDownload = (LinkButton)gvr.FindControl("LinkButton");
Image ib = (Image)gvr.FindControl("ib1");
string path = lnkDownload.Text;
string exten = path.Substring(path.LastIndexOf("."));
if (exten == ".pdf")
ib.ImageUrl = "images/pdf.GIF";
}
gvOrders.DataSource = fileInfo;
gvOrders.DataBind();
}
}
.aspx
<asp:TemplateField>
<ItemTemplate>
<img alt="" style="cursor: pointer" src="images/plus.png" />
<asp:Panel ID="pnlOrders" runat="server" Style="display: none">
<asp:GridView ID="gvOrders" runat="server" AutoGenerateColumns="false"
CssClass="mGrid" Width="700" HorizontalAlign="Center">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Image runat="server" ID="ib1" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Download"
ItemStyle-HorizontalAlign="Justify">
<ItemTemplate>
<asp:LinkButton ID="lnkDownload"
Text='<%# Eval("Name") %>'
CommandArgument='<%# Eval("FullName") %>'
runat="server"
OnClick="lnkDownload_Click"
OnClientClick="if (!confirm('Sure ?')) return false;">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
# Edit01
Si essayez avec:
<asp:Image runat="server" ID="ib1" ImageUrl="images/pdf.gif" />
Si vous affichez juste l'image de la grille, apparaît-il? Je soupçonne que l'URL ne se résout pas. – Marisa
@Marisa Merci pour la réponse, s'il vous plaît voir ** # Edit01 ** dans ma première question- –
êtes-vous sûr que le OnRowDataBound sera renvoyé? –