Basf_FCL/FCL/FineUIPro.Web/Evaluation/FilesManagement.aspx.cs

197 lines
7.1 KiB
C#

using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.Evaluation
{
public partial class FilesManagement : PageBase
{
#region
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitTreeMenu();
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
}
}
#endregion
#region
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
}
#endregion
#region
private void InitTreeMenu()
{
this.tvFileManagement.Nodes.Clear();
TreeNode rootRole = new TreeNode();
rootRole.Text = "FO";
rootRole.NodeID = "0";
rootRole.Expanded = true;
this.tvFileManagement.Nodes.Add(rootRole);
BoundTree(rootRole.Nodes);
}
/// <summary>
/// 遍历节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="parentId"></param>
/// <param name="type"></param>
private void BoundTree(TreeNodeCollection nodes)
{
List<Model.FC_SESRelatedData> datas = BLL.SESRelatedDataService.GetSESRelatedDataList();
if (!string.IsNullOrEmpty(this.txtFO.Text))
{
datas = datas.Where(e => e.FO_NO.Contains(this.txtFO.Text.Trim())).ToList();
}
if (datas.Count() > 0)
{
TreeNode tn = null;
foreach (var q in datas)
{
tn = new TreeNode();
tn.Text = q.FO_NO;
tn.NodeID = q.FO_NO;
tn.ToolTip = q.FO_NO;
tn.EnableClickEvent = true;
nodes.Add(tn);
}
}
}
#endregion
#region Tree点击事件
/// <summary>
/// 选择角色事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvFileManagement_NodeCommand(object sender, TreeCommandEventArgs e)
{
this.BindGrid(this.tvFileManagement.SelectedNodeID);
}
#endregion
#region BindGrid
private void BindGrid(string fo)
{
string strSql = "";
strSql = @"SELECT FileId, FO, FileName, FileType, FileLength, UploadUser, UploadDate, Remark FROM FilesManagement
WHERE FO=@FO
ORDER BY UploadDate";
List<SqlParameter> parms = new List<SqlParameter>();
parms.Add(new SqlParameter("@FO", fo));
SqlParameter[] parameter = parms.ToArray();
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = dt.Rows.Count;
var table = this.GetPagedDataTable(Grid1, dt);
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
#region
/// <summary>
/// 双击下载附件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
string url = "";
string Id = Grid1.SelectedRowID;
var files = (from x in Funs.DB.FilesManagement where x.FileId == Id select x).FirstOrDefault();
if (files != null)
{
if (!string.IsNullOrEmpty(files.FileUrl))
{
////this.ShowFile(files.FileUrl);
//string fileName = files.FileName;//客户端保存的文件名
////string filePath = Server.MapPath("DownLoad/aaa.zip");//路径
//string filePath = BLL.Funs.RootPath.Replace('\\', '/') + "Downloads/aaa.zip";//files.FileUrl.Replace('\\', '/');
//FileInfo fileInfo = new FileInfo(filePath);
//Response.Clear();
//Response.ClearContent();
//Response.ClearHeaders();
//Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
//Response.AddHeader("Content-Length", fileInfo.Length.ToString());
//Response.AddHeader("Content-Transfer-Encoding", "binary");
//Response.ContentType = "application/octet-stream";
//Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
//Response.WriteFile(fileInfo.FullName);
//Response.Flush();
//Response.End();
string file = files.FileUrl.Replace('\\', '/');
url = BLL.Funs.RootPath.Replace('\\', '/') + file;
string fileName = files.FileName;
long fileSize = long.Parse(files.FileLength);
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", fileSize.ToString());
Response.TransmitFile(url, 0, fileSize);
Response.Flush();
Response.End();
}
else
{
Alert.ShowInTop("没有附件或附件已删除!", MessageBoxIcon.Warning);
return;
}
}
}
#endregion
#region
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
this.BindGrid(this.tvFileManagement.SelectedNodeID);
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
this.BindGrid(this.tvFileManagement.SelectedNodeID);
}
/// <summary>
/// 分页显示条数下拉框
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
this.BindGrid(this.tvFileManagement.SelectedNodeID);
}
#endregion
}
}