前台GridView的控件源码
<asp:GridView runat="server" ID="gvList" AutoGenerateColumns="false" Width="" BorderWidth="0" CellPadding="1" CellSpacing="1" BackColor="#99BBE8" >
<EmptyDataTemplate>
<div class="divMsg">系统提示:未能查询到相关的记录。</div>
</EmptyDataTemplate>
<Columns>
<asp:BoundField DataField="filename" HeaderText="查询文件名称" HeaderStyle-HorizontalAlign="Left">
<ItemStyle HorizontalAlign="Left" Width="400px"/>
</asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<a href="/WebReport/ReportServer?reportlet=<%#DataBinder.Eval(Container.DataItem, "filename")%>"><img alt="打开" src="../images/open.jpg" style="border-width:0px;" /></a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="50px"/>
</asp:TemplateField>
</Columns>
<HeaderStyle CssClass="gvHeader" />
<RowStyle CssClass="gvRow2"/>
<EmptyDataRowStyle CssClass="gvEmpty" />
</asp:GridView>
后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetFileName();
}
}
/// <summary>
/// 得到文件名
/// </summary>
/// <returns></returns>
public void GetFileName()
{
//在指定目录及子目录下查找文件,在listBox1中列出子目录及文件
DirectoryInfo Dir = new DirectoryInfo("C:\\FineReport6.5\\WebReport\\WEB-INF\\reportlets\\Query\\省检科院");
DataTable dt = new DataTable();//创建虚拟表
dt.Columns.Add(new DataColumn("filename", typeof(string)));//创建列
try
{
foreach (FileInfo f in Dir.GetFiles("*.* "))//查找文件
{
bool isOk = false;
string fileName = f.ToString();
string filePostfix = Path.GetExtension(fileName);
string[] allowPostfix = { ".cpt" };
foreach (string item in allowPostfix)//判断所有的报表文件是否全部未 .cpt格式
{
if (filePostfix == item)
{
isOk = true;
break;
}
}
if (isOk)
{
DataRow dr = dt.NewRow();
dr["filename"] = f.ToString();
dt.Rows.Add(dr);
}
}
gvList.DataSource = dt;
gvList.DataBind();
}
catch (Exception e)
{
//MessageBox.Show(e.Message);
}
}