根據asp.net GridView中的文件擴展名,我無法顯示文件圖標。C#在嵌套的GridView上顯示asp.net中的文件圖標
的GridView的結構nested
我沒有錯誤,但GridView控件用於顯示圖標欄是空的。
我下面的代碼。
你能幫我嗎?
預先感謝您的任何幫助,真的很感激。
的.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
如果嘗試使用:
<asp:Image runat="server" ID="ib1" ImageUrl="images/pdf.gif" />
如果你只是顯示網格外的圖片,它出現在哪裏?我懷疑這個網址沒有解決。 – Marisa
@Marisa感謝您的回覆,請參閱我的第一個問題中的**#Edit01 ** - –
您是否確定OnRowDataBound將被解僱? –