xinjiang/SGGL/FineUIPro.Web/HSSE/Technique/HazardEvaluationRecord.aspx.cs

344 lines
13 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Web.UI;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.HSSE.Technique
{
public partial class HazardEvaluationRecord : PageBase
{
public string DataId
{
get
{
return (string)ViewState["DataId"];
}
set
{
ViewState["DataId"] = value;
}
}
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Funs.DropDownPageSize(this.ddlPageSize);
////
this.DataId = Request.Params["DataId"];
}
}
#endregion
#region Grid
/// <summary>
/// 绑定Grid
/// </summary>
private void BindGrid()
{
string strSql = @"SELECT LECItemRecordId
,DataId
,DataType
,Evaluatorld
,U.UserName EvaluatorName
,EvaluatorDate
,L
,E
,C
,D
,a.RiskLevel
,RiskLevel.RiskLevelName
,a.ControlMeasures
,a.Remark
FROM dbo.Hazard_RiskEvaluationRecord a
LEFT JOIN Sys_User AS U ON U.UserId = Evaluatorld
LEFT JOIN Base_RiskLevel AS RiskLevel ON RiskLevel.RiskLevelId = a.RiskLevel
where DataId=@DataId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@DataId",DataId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
BLL.LogService.AddSys_Log(this.CurrUser, string.Empty, string.Empty, BLL.Const.HazardListMenuId, Const.BtnQuery);
}
#endregion
#region
/// <summary>
/// 页索引改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
/// <summary>
/// Grid排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
/// <summary>
/// 分页下拉选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
#endregion
#region
/// <summary>
/// 关闭导出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window5_Close(object sender, WindowCloseEventArgs e)
{
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
Response.ContentType = "application/excel";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Write(GetGridTableHtml(Grid1, e.CloseArgument.Split('#')));
Response.End();
}
/// <summary>
/// 导出
/// </summary>
/// <param name = "grid" ></ param >
/// < param name="columns"></param>
/// <returns></returns>
private string GetGridTableHtml(Grid grid, string[] columns)
{
StringBuilder sb = new StringBuilder();
sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
List<string> columnHeaderTexts = new List<string>(columns);
List<int> columnIndexs = new List<int>();
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
sb.Append("<tr>");
foreach (GridColumn column in grid.Columns)
{
if (columnHeaderTexts.Contains(column.HeaderText))
{
sb.AppendFormat("<td>{0}</td>", column.HeaderText);
columnIndexs.Add(column.ColumnIndex);
}
}
sb.Append("</tr>");
foreach (GridRow row in grid.Rows)
{
sb.Append("<tr>");
int columnIndex = 0;
foreach (object value in row.Values)
{
if (columnIndexs.Contains(columnIndex))
{
string html = value.ToString();
if (html.StartsWith(Grid.TEMPLATE_PLACEHOLDER_PREFIX))
{
// 模板列
string templateID = html.Substring(Grid.TEMPLATE_PLACEHOLDER_PREFIX.Length);
Control templateCtrl = row.FindControl(templateID);
html = GetRenderedHtmlSource(templateCtrl);
}
//else
//{
// // 处理CheckBox
// if (html.Contains("f-grid-static-checkbox"))
// {
// if (!html.Contains("f-checked"))
// {
// html = "×";
// }
// else
// {
// html = "√";
// }
// }
// // 处理图片
// if (html.Contains("<img"))
// {
// string prefix = Request.Url.AbsoluteUri.Replace(Request.Url.AbsolutePath, "");
// html = html.Replace("src=\"", "src=\"" + prefix);
// }
//}
sb.AppendFormat("<td>{0}</td>", html);
}
columnIndex++;
}
sb.Append("</tr>");
}
sb.Append("</table>");
return sb.ToString();
}
/// <summary>
/// 获取控件渲染后的HTML源代码
/// </summary>
/// <param name="ctrl"></param>
/// <returns></returns>
private string GetRenderedHtmlSource(Control ctrl)
{
if (ctrl != null)
{
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
ctrl.RenderControl(htw);
return sw.ToString();
}
}
}
return String.Empty;
}
#endregion
#region
/// <summary>
/// 查询危险源类别
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Text_TextChanged(object sender, EventArgs e)
{
BLL.LogService.AddSys_Log(this.CurrUser, string.Empty, string.Empty, BLL.Const.HazardListMenuId, Const.BtnQuery);
}
#endregion
/// <summary>
/// 导出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
Response.ClearContent();
string filename = Funs.GetNewFileName();
Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("危险源清单" + filename, System.Text.Encoding.UTF8) + ".xls");
Response.ContentType = "application/excel";
Response.ContentEncoding = System.Text.Encoding.UTF8;
this.Grid1.PageSize = Grid1.RecordCount;
BindGrid();
Response.Write(GetGridTableHtmlPage(Grid1));
Response.End();
}
#region
/// <summary>
/// 导出方法
/// </summary>
/// <param name="grid"></param>
/// <returns></returns>
public static string GetGridTableHtmlPage(Grid grid)
{
StringBuilder sb = new StringBuilder();
sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
sb.Append("<tr>");
foreach (GridColumn column in grid.Columns)
{
sb.AppendFormat("<td>{0}</td>", column.HeaderText);
}
sb.Append("</tr>");
foreach (GridRow row in grid.Rows)
{
sb.Append("<tr>");
foreach (GridColumn column in grid.Columns)
{
string html = row.Values[column.ColumnIndex].ToString();
if (column.ColumnID == "tfNumber" && (row.FindControl("lbNumber") as AspNet.Label) != null)
{
html = (row.FindControl("lbNumber") as AspNet.Label).Text;
}
if (column.ColumnID == "tfHazardCode" && (row.FindControl("lbHazardCode") as AspNet.Label) != null)
{
html = (row.FindControl("lbHazardCode") as AspNet.Label).Text;
}
if (column.ColumnID == "tfHazardItems" && (row.FindControl("lbHazardItems") as AspNet.Label) != null)
{
html = (row.FindControl("lbHazardItems") as AspNet.Label).Text;
}
if (column.ColumnID == "tfDefectsType" && (row.FindControl("lbDefectsType") as AspNet.Label) != null)
{
html = (row.FindControl("lbDefectsType") as AspNet.Label).Text;
}
if (column.ColumnID == "tfMayLeadAccidents" && (row.FindControl("lbMayLeadAccidents") as AspNet.Label) != null)
{
html = (row.FindControl("lbMayLeadAccidents") as AspNet.Label).Text;
}
if (column.ColumnID == "tfHelperMethod" && (row.FindControl("lbHelperMethod") as AspNet.Label) != null)
{
html = (row.FindControl("lbHelperMethod") as AspNet.Label).Text;
}
if (column.ColumnID == "tfControlMeasures" && (row.FindControl("lbControlMeasures") as AspNet.Label) != null)
{
html = (row.FindControl("lbControlMeasures") as AspNet.Label).Text;
}
sb.AppendFormat("<td>{0}</td>", html);
}
sb.Append("</tr>");
}
sb.Append("</table>");
return sb.ToString();
}
#endregion
}
}