CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/HSSE/Law/LawRegulationList.aspx.cs

382 lines
14 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.

namespace FineUIPro.Web.HSSE.Law
{
using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using System.Web.UI;
public partial class LawRegulationList : PageBase
{
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//权限设置
this.GetButtonPower();
Funs.DropDownPageSize(this.ddlPageSize);
btnNew.OnClientClick = Window1.GetShowReference("LawRegulationListEdit.aspx") + "return false;";
btnSelectColumns.OnClientClick = Window5.GetShowReference("LawRegulationListSelectCloumn.aspx");
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
this.BindGrid();
}
else
{
if (GetRequestEventArgument() == "reloadGrid")
{
this.BindGrid();
}
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = @"SELECT Law.LawRegulationId,Law.LawRegulationCode,Law.LawRegulationName,Law.ApprovalDate,Law.EffectiveDate,Law.Description
,(CASE WHEN LEN(Law.Description) > 45 THEN LEFT(Law.Description,45) + '...' ELSE Law.Description END) AS ShortDescription
,Law.AttachUrl,Law.LawsRegulationsTypeId,Law.CompileMan,CompileUser.UserName AS CompileManName,Law.CompileDate
,Law.IsBuild,LawsRegulationsType.Code AS LawsRegulationsTypeCode
,LawsRegulationsType.Name AS LawsRegulationsTypeName,(CASE WHEN IsPass=1 THEN '' ELSE '' END) AS IsPassName, Substring(Law.AttachUrl,charindex('~',Law.AttachUrl)+1,LEN(Law.AttachUrl)) as AttachUrlName
,Law.UnitId,(CASE WHEN IsBuild = 1 THEN '集团' ELSE '' END ) AS IsBuildName
FROM dbo.Law_LawRegulationList AS Law
LEFT JOIN dbo.Base_LawsRegulationsType AS LawsRegulationsType ON LawsRegulationsType.Id=Law.LawsRegulationsTypeId
LEFT JOIN Sys_User AS CompileUser ON CompileUser.UserId=Law.CompileMan
WHERE 1=1";
List<SqlParameter> listStr = new List<SqlParameter>();
if (!string.IsNullOrEmpty(this.txtLawRegulationName.Text.Trim()))
{
strSql += " AND LawRegulationName LIKE @LawRegulationName";
listStr.Add(new SqlParameter("@LawRegulationName", "%" + this.txtLawRegulationName.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtLawsRegulationsTypeName.Text.Trim()))
{
strSql += " AND LawsRegulationsType.Name LIKE @LawsRegulationsTypeName";
listStr.Add(new SqlParameter("@LawsRegulationsTypeName", "%" + this.txtLawsRegulationsTypeName.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
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 btnDelete_Click(object sender, EventArgs e)
{
this.DeleteData();
}
/// <summary>
/// 右键删除事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
this.DeleteData();
}
/// <summary>
/// 删除方法
/// </summary>
private void DeleteData()
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var law = BLL.LawRegulationListService.GetLawRegulationListById(rowID);
if (law != null)
{
BLL.LogService.AddSys_Log(this.CurrUser, law.LawRegulationCode, law.LawRegulationId, BLL.Const.LawRegulationListMenuId, BLL.Const.BtnModify);
BLL.LawRegulationListService.DeleteLawRegulationListById(rowID);
}
}
BindGrid();
ShowNotify("删除数据成功!");
}
}
#endregion
#region
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
this.EditData();
}
/// <summary>
/// 右键编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
this.EditData();
}
/// <summary>
/// 编辑数据方法
/// </summary>
private void EditData()
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
return;
}
string LawRegulationId = Grid1.SelectedRowID;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("LawRegulationListEdit.aspx?LawRegulationId={0}", LawRegulationId, "编辑 - ")));
}
#endregion
#region Grid
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
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();
}
/// <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;
BindGrid();
}
#endregion
#region
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, EventArgs e)
{
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="button"></param>
/// <returns></returns>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.LawRegulationListMenuId);
if (buttonList.Count > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnMenuEdit.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnMenuDelete.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnOut))
{
this.btnSelectColumns.Hidden = false;
}
}
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
}
#endregion
/// <summary>
/// 从集团获取
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnGet_Click(object sender, EventArgs e)
{
var returnValue = CNCECHSSEWebService.getLaw_LawRegulationList();
if (returnValue.code == 1)
{
ShowNotify(returnValue.message, MessageBoxIcon.Success);
}
else
{
Alert.ShowInTop(returnValue.message, MessageBoxIcon.Success);
}
}
}
}