在GridView中显示文件名

本文关键字:显示文件 文件名 显示 GridView | 更新日期: 2023-09-27 17:50:48

我得到这个~/Data/TestCopy.pdf为我的文档在GridView,但我试图得到只有文件名没有从SQL数据库的目录。有人知道如何做到这一点吗?

谢谢!

           <asp:TemplateField HeaderText="Documents " SortExpression="filePath">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("filePath") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>                                
                            <asp:HyperLink ID="HyperLink1" Target="_blank" runat="server" Text='<%# Bind("filePath") %>'
                        NavigateUrl='<%# Eval("filePath") %>'>
                    </asp:HyperLink>
                        </ItemTemplate>
          </asp:TemplateField>

在GridView中显示文件名


最简单的方法是,添加对系统的引用。IO和使用Path类只获取文件名,在你的代码中做一点改动,

<asp:TemplateField HeaderText="Documents " SortExpression="filePath">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Path.GetFileName(Bind("filePath")) %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>                                
                        <asp:HyperLink ID="HyperLink1" Target="_blank" runat="server" Text='<%# Path.GetFileName(Bind("filePath")) %>'
                    NavigateUrl='<%# Eval("filePath") %>'>
                </asp:HyperLink>
                    </ItemTemplate>
      </asp:TemplateField>

在Gridview RowDataBound中,从filepath求值filename

System.IO.Path.GetFileName(filePath).

不确定,但你可以尝试这样做:-

Text='<%# Eval("filePath").ToString().Split(Eval("filePath").ToString().LastIndexOf("/"))[1] %>'

可能您已经这样存储了~/Data/TestCopy.pdf在数据库中。你可以使用split函数来分割最后一个'/'