This commit is contained in:
2024-05-08 10:17:02 +08:00
commit f2135bac5e
3844 changed files with 517549 additions and 0 deletions
@@ -0,0 +1,28 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataBackup.aspx.cs" Inherits="FineUIPro.Web.common.SysManage.DataBackup" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>数据库备份</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false"
BodyPadding="10px" runat="server" >
<Rows>
<f:FormRow>
<Items>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" Text="Data backup"
OnClick="btnSave_Click">
</f:Button>
<f:LinkButton ID="LbtnDownLoad" runat="server" EnableAjax="false" OnClick="LbtnDownLoad_Click"></f:LinkButton>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</form>
</body>
</html>
@@ -0,0 +1,92 @@
using System;
using System.IO;
using System.Web.UI;
namespace FineUIPro.Web.common.SysManage
{
public partial class DataBackup : PageBase
{
/// <summary>
/// 数据库名称
/// </summary>
public string DataName
{
get
{
return (string)ViewState["DataName"];
}
set
{
ViewState["DataName"] = value;
}
}
public string FilePath
{
get
{
return (string)ViewState["FilePath"];
}
set
{
ViewState["FilePath"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.LbtnDownLoad.Hidden = true;
string str = BLL.Funs.ConnString;
string[] group = str.Split(';');
foreach (string s in group)
{
if (s.Contains("Database"))
{
string[] bak = s.Split('=');
DataName = bak[1];
}
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.UserId, BLL.Const.DataBakMenuId, BLL.Const.BtnDataBak))
{
string newname = DataName + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + ".bak";
string nepath = Server.MapPath("../App_Data/") + newname;
FilePath = "App_Data\\" + newname;
string sql = "BACKUP DATABASE " + DataName + " to DISK ='" + nepath + "'";
try
{
if (!File.Exists(nepath))
{
BLL.SQLHelper.ExecutSql(sql);
}
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this, typeof(string), "_alert", "alert('Database Backup Fail. Possible Reason:" + ex.Message.ToString() + "')", true);
}
string path = "../App_Data/" + newname;
this.LbtnDownLoad.Text = "File " + newname + " backuped to server successfully, Please Click and Download to local computer!";
LbtnDownLoad.Hidden = false;
}
else
{
ShowNotify("You are not Authorized. Please Contact the Administrator!");
}
}
protected void LbtnDownLoad_Click(object sender, EventArgs e)
{
ShowFile(FilePath);
}
}
}
+60
View File
@@ -0,0 +1,60 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.common.SysManage {
public partial class DataBackup {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form SimpleForm1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// LbtnDownLoad 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.LinkButton LbtnDownLoad;
}
}
+84
View File
@@ -0,0 +1,84 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LogList.aspx.cs" Inherits="FineUIPro.Web.SysManage.LogList" %>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" EnableCollapse="true" runat="server"
BoxFlex="1" DataKeyNames="LogId" AllowCellEditing="true" ClicksToEdit="2" DataIDField="LogId"
AllowSorting="true" SortField="OperationTime" SortDirection="DESC" OnSort="Grid1_Sort"
AllowPaging="true" IsDatabasePaging="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange"
AllowFilters="true" OnFilterChange="Grid1_FilterChange">
<Columns>
<f:TemplateField Width="50px" TextAlign="Center">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="150px" ColumnID="UserName" DataField="UserName" SortField="UserName"
FieldType="String" HeaderText="Operation staff" EnableFilter="true" HeaderTextAlign="Center"
TextAlign="Center">
<Filter EnableMultiFilter="true" ShowMatcher="true">
<Operator>
<f:DropDownList ID="DropDownList2" runat="server">
<f:ListItem Text="equal to" Value="equal" />
<f:ListItem Text="include" Value="contain" Selected="true" />
</f:DropDownList>
</Operator>
</Filter>
</f:RenderField>
<f:RenderField Width="180px" ColumnID="OperationTime" DataField="OperationTime" SortField="OperationTime"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd:HH:mm:ss" HeaderText="Operation time"
HeaderTextAlign="Center" TextAlign="Center" EnableFilter="true">
<Filter EnableMultiFilter="true" ShowMatcher="true">
<Operator>
<f:DropDownList ID="DropDownList4" runat="server">
<f:ListItem Text="greater than" Value="greater" Selected="true" />
<f:ListItem Text="less than" Value="less" />
<f:ListItem Text="equal to" Value="equal" />
</f:DropDownList>
</Operator>
<Field>
<f:DatePicker runat="server" Required="true" ID="DatePicker2">
</f:DatePicker>
</Field>
</Filter>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="Ip" DataField="Ip" SortField="Ip" FieldType="String"
HeaderTextAlign="Center" TextAlign="Left" HeaderText="IP Address">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="HostName" DataField="HostName" SortField="HostName"
HeaderTextAlign="Center" TextAlign="Left" FieldType="String" HeaderText="Host name">
</f:RenderField>
<f:RenderField Width="250px" ColumnID="OperationLog" DataField="OperationLog" SortField="OperationLog"
HeaderTextAlign="Center" TextAlign="Left" FieldType="String" HeaderText="Operation log" ExpandUnusedSpace="true">
</f:RenderField>
</Columns>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="Number of records per page:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<f:ListItem Text="15" Value="15" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
<f:ListItem Text="30" Value="30" />
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
</form>
</body>
</html>
+132
View File
@@ -0,0 +1,132 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using BLL;
using System.Data;
namespace FineUIPro.Web.SysManage
{
public partial class LogList : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
// 表头过滤
FilterDataRowItem = FilterDataRowItemImplement;
if (!IsPostBack)
{
BindGrid();
}
}
#region BindGrid
private void BindGrid()
{
string strSql = @"SELECT LogId,dbo.Sys_Log.UserId,OperationTime,Ip,HostName,OperationLog,dbo.Sys_User.UserName FROM Sys_Log
LEFT JOIN dbo.Sys_User ON Sys_User.UserId = Sys_Log.UserId
order by OperationTime desc";
DataTable tb = SQLHelper.GetDataTableRunText(strSql, null);
Grid1.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
#region 表头过滤
protected void Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
private bool FilterDataRowItemImplement(object sourceObj, string fillteredOperator, object fillteredObj, string column)
{
bool valid = false;
if (column == "UserName")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal")
{
if (sourceValue == fillteredValue)
{
valid = true;
}
}
else if (fillteredOperator == "contain")
{
if (sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
}
else if (column == "OperationTime")
{
if (!String.IsNullOrEmpty(sourceObj.ToString()))
{
DateTime sourceValue = Convert.ToDateTime(sourceObj);
DateTime fillteredValue = Convert.ToDateTime(fillteredObj);
if (fillteredOperator == "greater")
{
if (sourceValue > fillteredValue)
{
valid = true;
}
}
else if (fillteredOperator == "less")
{
if (sourceValue < fillteredValue)
{
valid = true;
}
}
else if (fillteredOperator == "equal")
{
if (sourceValue == fillteredValue)
{
valid = true;
}
}
}
}
return valid;
}
#endregion
#endregion
/// <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();
}
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
}
}
+123
View File
@@ -0,0 +1,123 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.SysManage {
public partial class LogList {
/// <summary>
/// Head1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlHead Head1;
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// DropDownList2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList DropDownList2;
/// <summary>
/// DropDownList4 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList DropDownList4;
/// <summary>
/// DatePicker2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker DatePicker2;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
}
}
+100
View File
@@ -0,0 +1,100 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RoleList.aspx.cs" Inherits="FineUIPro.Web.common.SysManage.RoleList" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>角色管理</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="Role management" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="RoleId" AllowCellEditing="true" EnableColumnLines="true"
ClicksToEdit="2" DataIDField="RoleId" AllowSorting="true" SortField="RoleName"
SortDirection="ASC" OnSort="Grid1_Sort"
AllowPaging="true" IsDatabasePaging="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" AllowFilters="true"
OnFilterChange="Grid1_FilterChange">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server">
<Items>
<f:Button ID="btnNew" ToolTip="Add" Icon="Add" Text="Add" EnablePostBack="false" runat="server">
</f:Button>
<f:Button ID="btnEdit" ToolTip="Modify" Text="Modify" Icon="Pencil" runat="server" OnClick="btnEdit_Click">
</f:Button>
<f:Button ID="btnDelete" ToolTip="Delete" Text="Delete" Icon="Delete" ConfirmText="Make sure to delete the current data?" OnClick="btnDelete_Click"
runat="server">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField Width="50px" TextAlign="Center">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="300px" ColumnID="RoleName" DataField="RoleName" EnableFilter="true"
SortField="RoleName" FieldType="String" HeaderText="Role name" HeaderTextAlign="Center" TextAlign="Left">
<Filter EnableMultiFilter="true" ShowMatcher="true">
<Operator>
<f:DropDownList ID="DropDownList1" runat="server">
<f:ListItem Text="equal to" Value="equal" />
<f:ListItem Text="include" Value="contain" Selected="true" />
</f:DropDownList>
</Operator>
</Filter>
</f:RenderField>
<f:RenderField Width="350px" ColumnID="Def" DataField="Def" SortField="Def"
FieldType="String" HeaderText="Remark" HeaderTextAlign="Center" TextAlign="Center" ExpandUnusedSpace="true">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="Number of records per page:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<f:ListItem Text="15" Value="15" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="Pop-up window" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Self" EnableResize="true" runat="server" OnClose="Window1_Close" IsModal="true"
Width="560px" Height="240px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" EnablePostBack="true"
Icon="BulletEdit" runat="server" Text="Modify">
</f:MenuButton>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
Icon="Delete" ConfirmText="Delete selected row?" ConfirmTarget="Top" runat="server" Text="Delete">
</f:MenuButton>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
// 返回false,来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
F(menuID).show(); //showAt(event.pageX, event.pageY);
return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
</script>
</body>
</html>
@@ -0,0 +1,286 @@
namespace FineUIPro.Web.common.SysManage
{
using System;
using System.Data;
using System.Linq;
using BLL;
public partial class RoleList : PageBase
{
#region 加载
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
// 表头过滤
FilterDataRowItem = FilterDataRowItemImplement;
if (!IsPostBack)
{
GetButtonPower();//权限设置
btnNew.OnClientClick = Window1.GetShowReference("RoleListEdit.aspx") + "return false;";
btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("Please select at least one item!");
btnDelete.ConfirmText = String.Format("Are you sure you want to delete the selected &nbsp;<b><script>{0}</script></b>&nbsp;rows?", Grid1.GetSelectedCountReference());
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
BindGrid();
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = "SELECT RoleId,RoleName,Def FROM dbo.Sys_Role";
DataTable tb = SQLHelper.GetDataTableRunText(strSql);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
Grid1.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid1.FilteredData, tb);
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 Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 根据表头信息过滤列表数据
/// </summary>
/// <param name="sourceObj"></param>
/// <param name="fillteredOperator"></param>
/// <param name="fillteredObj"></param>
/// <param name="column"></param>
/// <returns></returns>
private bool FilterDataRowItemImplement(object sourceObj, string fillteredOperator, object fillteredObj, string column)
{
bool valid = false;
if (column == "RoleName")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
return valid;
}
#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 role = BLL.Sys_RoleService.GetRole(rowID);
if (role != null)
{
if (role.IsBuilt == true)
{
Alert.ShowInTop("内置项不能删除!", MessageBoxIcon.Information);
return;
}
else
{
if (judgementDelete(rowID, false))
{
BLL.Sys_RoleService.DeleteRole(rowID);
}
}
}
}
BindGrid();
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Delete role information");
ShowNotify("Deleted successfully!");
}
}
#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>
/// 分页显示条数下拉框
/// </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 btnEdit_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInParent("Please select at least one record!");
return;
}
string Id = Grid1.SelectedRowID;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("RoleListEdit.aspx?roleId={0}", Id, "编辑 - ")));
}
/// <summary>
/// 右键编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
btnEdit_Click(null, null);
}
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
btnEdit_Click(null, null);
}
#endregion
#region 判断是否可删除
/// <summary>
/// 判断是否可以删除
/// </summary>
/// <returns></returns>
private bool judgementDelete(string id, bool isShow)
{
string content = string.Empty;
if (Funs.DB.Sys_User.FirstOrDefault(x => x.RoleId == id) != null)
{
content = "This role is already in use in [user information] and cannot be deleted!";
}
if (string.IsNullOrEmpty(content))
{
return true;
}
else
{
if (isShow)
{
Alert.ShowInTop(content);
}
return false;
}
}
#endregion
#region 权限设置
/// <summary>
/// 菜单按钮权限
/// </summary>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.RoleMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnEdit.Hidden = false;
this.btnMenuEdit.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnDelete.Hidden = false;
this.btnMenuDelete.Hidden = false;
}
}
}
#endregion
}
}
+168
View File
@@ -0,0 +1,168 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.common.SysManage {
public partial class RoleList {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar2;
/// <summary>
/// btnNew 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnNew;
/// <summary>
/// btnEdit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnEdit;
/// <summary>
/// btnDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnDelete;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// DropDownList1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList DropDownList1;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuEdit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuEdit;
/// <summary>
/// btnMenuDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDelete;
}
}
@@ -0,0 +1,41 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RoleListEdit.aspx.cs" Inherits="FineUIPro.Web.common.SysManage.RoleListEdit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>编辑角色</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtRoleName" runat="server" Label="Role name" Required="true" ShowRedStar="true">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtDef" runat="server" Label="Remark" ></f:TextArea>
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" Text="Save" ToolTip="Save" ValidateForms="SimpleForm1"
OnClick="btnSave_Click">
</f:Button>
<f:Button ID="btnClose" EnablePostBack="false" ToolTip="Close" Text="Close" runat="server" Icon="SystemClose">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
</form>
</body>
</html>
@@ -0,0 +1,80 @@
using System;
using System.Linq;
namespace FineUIPro.Web.common.SysManage
{
public partial class RoleListEdit : PageBase
{
/// <summary>
/// 角色编辑页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();//按钮权限
btnClose.OnClientClick = ActiveWindow.GetHideReference();
string roleId = Request.Params["roleId"];
if (!string.IsNullOrEmpty(roleId))
{
var role = BLL.Sys_RoleService.GetRole(roleId);
if (role != null)
{
this.txtRoleName.Text = role.RoleName;
this.txtDef.Text = role.Def;
}
}
}
}
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
string roleId = Request.Params["roleId"];
if (BLL.Sys_RoleService.IsExistRoleName(roleId, this.txtRoleName.Text.Trim()))
{
Alert.ShowInParent("The role name already exists!");
return;
}
else
{
if (string.IsNullOrEmpty(roleId))
{
BLL.Sys_RoleService.AddRole(this.txtRoleName.Text.Trim(), this.txtDef.Text.Trim());
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Add role information!");
}
else
{
BLL.Sys_RoleService.UpdateRole(roleId, this.txtRoleName.Text.Trim(), this.txtDef.Text.Trim());
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Modify role information!");
}
ShowNotify("Save successfully!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
}
#region 权限设置
/// <summary>
/// 菜单按钮权限
/// </summary>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.RoleMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnSave.Hidden = false;
}
}
}
#endregion
}
}
@@ -0,0 +1,87 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.common.SysManage {
public partial class RoleListEdit {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form SimpleForm1;
/// <summary>
/// txtRoleName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtRoleName;
/// <summary>
/// txtDef 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtDef;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// btnClose 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnClose;
}
}
@@ -0,0 +1,70 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RolePower.aspx.cs" Inherits="FineUIPro.Web.common.SysManage.RolePower" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region">
<Items>
<f:Panel runat="server" ID="panelLeftRegion" RegionPosition="Left" RegionSplit="true"
EnableCollapse="true" Width="280px" Title="Role" ShowBorder="true" Layout="VBox"
ShowHeader="true" AutoScroll="true" BodyPadding="5px" IconFont="ArrowCircleLeft">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:TextBox ID="txtRoleName" runat="server" Label="Role" EmptyText="Search by Role" AutoPostBack="true"
OnTextChanged="TextBox_TextChanged" Width="250px" LabelWidth="60px" LabelAlign="Right">
</f:TextBox>
</Items>
</f:Toolbar>
</Toolbars>
<Items>
<f:Tree ID="tvRole" ShowHeader="false" OnNodeCommand="tvRole_NodeCommand" runat="server"
ShowBorder="false" EnableCollapse="true" EnableSingleClickExpand="true"
AutoLeafIdentification="true" EnableSingleExpand="true" EnableTextSelection="true" Height="700px">
</f:Tree>
</Items>
</f:Panel>
<f:Panel runat="server" ID="panelCenterRegion" RegionPosition="Center" ShowBorder="true"
Layout="VBox" ShowHeader="false" BodyPadding="5px" IconFont="PlusCircle" Title="Role Authorization"
TitleToolTip="Role Authorization" AutoScroll="true">
<Toolbars>
<f:Toolbar ID="Toolbar3" Position="Top" ToolbarAlign="Right" runat="server">
<Items>
<f:Label ID="lblRoleName" runat="server"></f:Label>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnSave" ToolTip="Save" Text="Save" Icon="SystemSave" EnablePostBack="true"
runat="server" OnClick="btnSave_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Items>
<f:Grid ID="Grid1" IsFluid="true" CssClass="blockpanel" ShowBorder="true" ShowHeader="false" Title="Role Authorization"
runat="server" EnableCollapse="false" DataKeyNames="MenuId,SuperMenu" OnRowDataBound="Grid1_RowDataBound"
EnableTree="true" ExpandAllTreeNodes="true" TreeColumn="MenuName" DataIDField="MenuId" DataParentIDField="SuperMenu">
<Columns>
<f:RowNumberField />
<f:BoundField ColumnID="MenuName" ExpandUnusedSpace="true" DataField="MenuName" HeaderText="Menu name" />
<f:TemplateField ColumnID="ButtonPower" Width="800px" HeaderText="Button permissions" HeaderTextAlign="Left" TextAlign="Left">
<ItemTemplate>
<asp:CheckBoxList runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal" RepeatColumns="8"
ID="cblButtonPower">
</asp:CheckBoxList>
</ItemTemplate>
</f:TemplateField>
</Columns>
</f:Grid>
</Items>
</f:Panel>
</Items>
</f:Panel>
</form>
</body>
</html>
@@ -0,0 +1,234 @@
using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.common.SysManage
{
public partial class RolePower : PageBase
{
#region 加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitTreeMenu();
}
}
#endregion
#region 查询
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
}
#endregion
#region 加载树
private void InitTreeMenu()
{
this.tvRole.Nodes.Clear();
TreeNode rootRole = new TreeNode();
//if (this.GetLanguage== "zh-CN")
//{
// rootRole.Text = "角色";
//}
//else
//{
rootRole.Text = "Roles";
//}
rootRole.NodeID = "0";
rootRole.Expanded = true;
this.tvRole.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.Sys_Role> roles = BLL.Sys_RoleService.GetRoleList();
if (!string.IsNullOrEmpty(this.txtRoleName.Text))
{
roles = roles.Where(e => e.RoleName.Contains(this.txtRoleName.Text.Trim())).ToList();
}
if (roles.Count() > 0)
{
TreeNode tn = null;
foreach (var q in roles)
{
tn = new TreeNode();
tn.Text = q.RoleName;
tn.NodeID = q.RoleId;
tn.ToolTip = q.Def;
tn.EnableClickEvent = true;
nodes.Add(tn);
}
}
}
#endregion
#region Tree点击事件
/// <summary>
/// 选择角色事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvRole_NodeCommand(object sender, TreeCommandEventArgs e)
{
var role = BLL.Sys_RoleService.GetRole(this.tvRole.SelectedNodeID);
if (role != null)
{
this.lblRoleName.Text = "Role:" + role.RoleName;
}
this.BindGrid();
}
#endregion
#region BindGrid
private void BindGrid()
{
string strSql = "";
//string strSql = @"SELECT MenuId,MenuName,SuperMenu FROM dbo.Sys_Menu
// ORDER BY SortIndex";
//if (this.GetLanguage == "en-US")
//{
strSql = @"SELECT MenuId,MenuEnName AS MenuName,SuperMenu FROM dbo.Sys_Menu
ORDER BY SortIndex";
//}
List<SqlParameter> parms = new List<SqlParameter>();
//parms.Add(new SqlParameter("@MenuModule", this.drpMenuModule.SelectedValue));
//SqlParameter[] parameter = parms.ToArray();
DataTable dt = SQLHelper.GetDataTableRunText(strSql, null);
Grid1.DataSource = dt;
Grid1.DataBind();
}
#endregion
#region Grid点击事件
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
System.Web.UI.WebControls.CheckBoxList cblButtonPower = (System.Web.UI.WebControls.CheckBoxList)(this.Grid1.Rows[e.RowIndex].FindControl("cblButtonPower"));
string menuId = e.Row.RowID;
var menu = from x in Funs.DB.Sys_Menu where x.MenuId == menuId select x;
if (menu != null && menu.Count() > 0)
{
var b = from x in Funs.DB.Sys_ButtonToMenu where x.MenuId == menu.First().MenuId orderby x.SortIndex select x;
if (b != null && b.Count() > 0)
{
//cblButtonPower.DataTextField = "ButtonName";
//if (this.GetLanguage == "en-US")
//{
cblButtonPower.DataTextField = "ButtonEnName";
//}
cblButtonPower.DataValueField = "ButtonToMenuId";
cblButtonPower.DataSource = b.ToList();
cblButtonPower.DataBind();
}
if (tvRole.SelectedNode != null && tvRole.SelectedNodeID != "0")
{
var power = (from x in Funs.DB.Sys_ButtonPower
where x.MenuId == menu.First().MenuId
&& x.RoleId == tvRole.SelectedNodeID
select x).ToList();
for (int i = 0; i < power.Count; i++)
{
for (int j = 0; j < cblButtonPower.Items.Count; j++)
{
if (power[i].ButtonToMenuId == cblButtonPower.Items[j].Value)
{
cblButtonPower.Items[j].Selected = true;
}
}
}
}
}
}
#endregion
#region 保存
/// <summary>
/// 保存按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (tvRole.SelectedNode == null || tvRole.SelectedNodeID == "0")
{
Alert.ShowInTop("Please select a role!", MessageBoxIcon.Warning);
return;
}
var power = from x in Funs.DB.Sys_ButtonPower
join y in Funs.DB.Sys_Menu on x.MenuId equals y.MenuId
where x.RoleId == tvRole.SelectedNodeID
select x;
Funs.DB.Sys_ButtonPower.DeleteAllOnSubmit(power);
Funs.DB.SubmitChanges();
for (int i = 0; i < this.Grid1.Rows.Count; i++)
{
System.Web.UI.WebControls.CheckBoxList cblButtonPower = (System.Web.UI.WebControls.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblButtonPower"));
if (cblButtonPower.SelectedItem != null)
{
foreach (System.Web.UI.WebControls.ListItem item in cblButtonPower.Items)
{
if (item.Selected)
{
Model.Sys_ButtonPower newPower = new Model.Sys_ButtonPower();
newPower.ButtonPowerID = SQLHelper.GetNewID(typeof(Model.Sys_ButtonPower));
newPower.RoleId = tvRole.SelectedNodeID;
newPower.MenuId = Grid1.DataKeys[i][0].ToString();
newPower.ButtonToMenuId = item.Value;
Funs.DB.Sys_ButtonPower.InsertOnSubmit(newPower);
Funs.DB.SubmitChanges();
}
}
string supMenuId = Grid1.DataKeys[i][1].ToString();
InsertSuperMenu(supMenuId, tvRole.SelectedNodeID);
}
}
ShowNotify("Role permissions set successfully!");
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Role permission Settings");
}
private void InsertSuperMenu(string supMenuId, string roleId)
{
Model.FCLDB db = Funs.DB;
var menuPower = from x in db.Sys_ButtonPower where x.RoleId == roleId && x.MenuId == supMenuId select x;
if (menuPower.Count() == 0 && supMenuId != "0")
{
string newKeyID = SQLHelper.GetNewID(typeof(Model.Sys_ButtonPower));
Model.Sys_ButtonPower newPower = new Model.Sys_ButtonPower();
newPower.ButtonPowerID = newKeyID;
newPower.RoleId = roleId;
newPower.MenuId = supMenuId;
db.Sys_ButtonPower.InsertOnSubmit(newPower);
db.SubmitChanges();
var menu = from x in db.Sys_Menu where x.MenuId == supMenuId select x;
if (menu.Count() > 0)
{
InsertSuperMenu(menu.First().SuperMenu, roleId);
}
}
}
#endregion
}
}
+141
View File
@@ -0,0 +1,141 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.common.SysManage {
public partial class RolePower {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// panelLeftRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelLeftRegion;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// txtRoleName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtRoleName;
/// <summary>
/// tvRole 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvRole;
/// <summary>
/// panelCenterRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelCenterRegion;
/// <summary>
/// Toolbar3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar3;
/// <summary>
/// lblRoleName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblRoleName;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// cblButtonPower 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBoxList cblButtonPower;
}
}
@@ -0,0 +1,56 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelectUserToEMail.aspx.cs" Inherits="FineUIPro.Web.SysManage.SelectUserToEMail" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="Panel1" />
<f:Panel ID="Panel1" CssClass="blockpanel" Margin="20px" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region">
<Items>
<f:Panel runat="server" ID="panelCenterRegion" RegionPosition="Center" AutoScroll="true"
Title="" ShowBorder="true" ShowHeader="false" BodyPadding="10px">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="" EnableCollapse="true"
AllowColumnLocking="true" EnableColumnLines="true" EnableCheckBoxSelect="true"
EnableTextSelection="True" runat="server" BoxFlex="1" DataKeyNames="UserId" AllowCellEditing="true"
ClicksToEdit="2" DataIDField="UserId" AllowSorting="true" SortField="UserName" AllowPaging="false" IsDatabasePaging="false">
<Columns>
<%--<f:TemplateField Width="50px" TextAlign="Center">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>--%>
<f:RenderField Width="150px" ColumnID="UserName" DataField="UserName" FieldType="String" HeaderText="Name" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="RoleName" DataField="RoleName"
SortField="RoleName" FieldType="String" HeaderText="Role" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="DepartName" DataField="DepartName" FieldType="String" HeaderText="Department" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="180px" ColumnID="Email" DataField="Email" FieldType="String" HeaderText="E-Mail" HeaderTextAlign="Center" TextAlign="Left" ExpandUnusedSpace="true">
</f:RenderField>
<f:CheckBoxField ColumnID="IsLeader" Width="80px" RenderAsStaticField="false" DataField="IsLeader" HeaderText="Is Leader" TextAlign="Center"/>
</Columns>
</f:Grid>
</Items>
</f:Panel>
</Items>
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" Text="Save" ToolTip="Save" ValidateForms="SimpleForm1" OnClick="btnSave_Click">
</f:Button>
<f:Button ID="btnClose" EnablePostBack="false" ToolTip="Close" Text="Close" runat="server" Icon="SystemClose">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Panel>
</form>
</body>
</html>
@@ -0,0 +1,67 @@
using BLL;
using System;
using System.Data;
namespace FineUIPro.Web.SysManage
{
public partial class SelectUserToEMail : PageBase
{
#region 加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnClose.OnClientClick = ActiveWindow.GetHideReference();
BindGrid();
}
}
private void BindGrid()
{
string strSql = @"SELECT Users.UserId,
Users.UserName,
Users.Email,
Roles.RoleName,
Depart.DepartName"
+ @" FROM Sys_User as Users"
+ @" LEFT JOIN dbo.Sys_Role AS Roles ON Roles.RoleId = Users.RoleId"
+ @" LEFT JOIN dbo.Base_Depart AS Depart ON Depart.DepartId = Users.DepartId"
+ @" WHERE Account!='gly' AND Users.UserId NOT IN(select UserId from Sys_UserToEMial)"
+ @" ORDER BY UserName ASC ";
DataTable table = SQLHelper.GetDataTableRunText(strSql, null);
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
#region 保存
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
Model.Sys_UserToEMial newUserToEMial = new Model.Sys_UserToEMial();
newUserToEMial.UserToEmailId = SQLHelper.GetNewID(typeof(Model.Sys_UserToEMial));
newUserToEMial.UserId = rowID;
CheckBoxField isLeader = (CheckBoxField)Grid1.FindColumn("IsLeader");
if(isLeader!=null)
{
newUserToEMial.IsLeader = isLeader.GetCheckedState(rowIndex);
}
BLL.Sys_UserToEMialService.AddUserToEMial(newUserToEMial);
}
}
ShowNotify("Save successfully!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
#endregion
}
}
@@ -0,0 +1,87 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.SysManage {
public partial class SelectUserToEMail {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// panelCenterRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelCenterRegion;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar2;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// btnClose 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnClose;
}
}
+65
View File
@@ -0,0 +1,65 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SysSet.aspx.cs" Inherits="FineUIPro.Web.SysManage.SysSet" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系统设置</title>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<%--<f:FormRow>
<Items>
<f:TextBox ID="txtCT_GM" runat="server" Label="CT GM" LabelWidth="400px"></f:TextBox>
<f:Label ID="Label1" runat="server"></f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtDirector" runat="server" Label="Director" LabelWidth="400px"></f:TextBox>
<f:Label ID="Label2" runat="server"></f:Label>
</Items>
</f:FormRow>--%>
<%--<f:FormRow>
<Items>
<f:DropDownList ID="drpCTSS" runat="server" Label="CTS/S" LabelWidth="400" EnableEdit="true"></f:DropDownList>
<f:Label ID="Label3" runat="server"></f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpCTSC" runat="server" Label="CTS/C" LabelWidth="400" EnableEdit="true"></f:DropDownList>
<f:Label ID="Label4" runat="server"></f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpCTMT" runat="server" Label="CTM/T" LabelWidth="400" EnableEdit="true"></f:DropDownList>
<f:Label ID="Label5" runat="server"></f:Label>
</Items>
</f:FormRow>--%>
<f:FormRow ColumnWidths="80% 20%">
<Items>
<f:TextArea ID="txtDes" runat="server" Label="评价说明"></f:TextArea>
<f:Label ID="Label1" runat="server"></f:Label>
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" Text="Save" ToolTip="Save" ValidateForms="SimpleForm1"
OnClick="btnSave_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
</form>
</body>
</html>
+203
View File
@@ -0,0 +1,203 @@
using BLL;
using System;
using System.Linq;
namespace FineUIPro.Web.SysManage
{
public partial class SysSet : PageBase
{
#region 加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();
//this.drpCTSS.DataTextField = "UserName";
//this.drpCTSS.DataValueField = "UserId";
//this.drpCTSS.DataSource = BLL.Sys_UserService.GetUserListByDepartId(BLL.Const.CTSSId);
//this.drpCTSS.DataBind();
//Funs.FineUIPleaseSelect(this.drpCTSS);
//this.drpCTSC.DataTextField = "UserName";
//this.drpCTSC.DataValueField = "UserId";
//this.drpCTSC.DataSource = BLL.Sys_UserService.GetUserListByDepartId(BLL.Const.CTSCId);
//this.drpCTSC.DataBind();
//Funs.FineUIPleaseSelect(this.drpCTSC);
//this.drpCTMT.DataTextField = "UserName";
//this.drpCTMT.DataValueField = "UserId";
//this.drpCTMT.DataSource = BLL.Sys_UserService.GetUserListByDepartId(BLL.Const.CTMTId);
//this.drpCTMT.DataBind();
//Funs.FineUIPleaseSelect(this.drpCTMT);
////CT_GM
//Model.Sys_Set set1 = BLL.Sys_SetService.GetSetById(1);
//if (set1 != null)
//{
// this.txtCT_GM.Text = set1.SetValue;
//}
////总监
//Model.Sys_Set set2 = BLL.Sys_SetService.GetSetById(2);
//if (set2 != null)
//{
// this.txtDirector.Text = set2.SetValue;
//}
//CTS / S
//Model.Sys_Set set3 = BLL.Sys_SetService.GetSetById(3);
//if (set3 != null)
//{
// this.drpCTSS.SelectedValue = set3.SetValue;
//}
////CTS/C
//Model.Sys_Set set4 = BLL.Sys_SetService.GetSetById(4);
//if (set4 != null)
//{
// this.drpCTSC.SelectedValue = set4.SetValue;
//}
////CTM/T
//Model.Sys_Set set5 = BLL.Sys_SetService.GetSetById(5);
//if (set5 != null)
//{
// this.drpCTMT.SelectedValue = set5.SetValue;
//}
//评价说明
Model.Sys_Set set6 = BLL.Sys_SetService.GetSetById(6);
if (set6 != null)
{
this.txtDes.Text = set6.SetValue;
}
}
}
#endregion
#region 保存
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
//Model.Sys_Set set1 = BLL.Sys_SetService.GetSetById(1);
//if (set1 != null)
//{
// set1.SetValue = this.txtCT_GM.Text.Trim();
// BLL.Sys_SetService.UpdateSysSet(set1);
//}
//else
//{
// Model.Sys_Set newSet1 = new Model.Sys_Set();
// newSet1.SetId = 1;
// newSet1.SetName = "CT_GM";
// newSet1.SetValue = this.txtCT_GM.Text.Trim();
// BLL.Sys_SetService.AddSysSet(newSet1);
//}
//Model.Sys_Set set2 = BLL.Sys_SetService.GetSetById(2);
//if (set2 != null)
//{
// set2.SetValue = this.txtDirector.Text.Trim();
// BLL.Sys_SetService.UpdateSysSet(set2);
//}
//else
//{
// Model.Sys_Set newSet2 = new Model.Sys_Set();
// newSet2.SetId = 2;
// newSet2.SetName = "总监";
// newSet2.SetValue = this.txtDirector.Text.Trim();
// BLL.Sys_SetService.AddSysSet(newSet2);
//}
//if (this.drpCTSS.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpCTSS.SelectedValue))
//{
// Model.Sys_Set set3 = BLL.Sys_SetService.GetSetById(3);
// if (set3 != null)
// {
// set3.SetValue = this.drpCTSS.SelectedValue;
// BLL.Sys_SetService.UpdateSysSet(set3);
// }
// else
// {
// Model.Sys_Set newSet3 = new Model.Sys_Set();
// newSet3.SetId = 3;
// newSet3.SetName = "CTS/S";
// newSet3.SetValue = this.drpCTSS.SelectedValue;
// BLL.Sys_SetService.AddSysSet(newSet3);
// }
//}
//if (this.drpCTSC.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpCTSC.SelectedValue))
//{
// Model.Sys_Set set4 = BLL.Sys_SetService.GetSetById(4);
// if (set4 != null)
// {
// set4.SetValue = this.drpCTSC.SelectedValue;
// BLL.Sys_SetService.UpdateSysSet(set4);
// }
// else
// {
// Model.Sys_Set newSet4 = new Model.Sys_Set();
// newSet4.SetId = 4;
// newSet4.SetName = "CTS/C";
// newSet4.SetValue = this.drpCTSC.SelectedValue;
// BLL.Sys_SetService.AddSysSet(newSet4);
// }
//}
//if (this.drpCTMT.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpCTMT.SelectedValue))
//{
// Model.Sys_Set set5 = BLL.Sys_SetService.GetSetById(5);
// if (set5 != null)
// {
// set5.SetValue = this.drpCTMT.SelectedValue;
// BLL.Sys_SetService.UpdateSysSet(set5);
// }
// else
// {
// Model.Sys_Set newSet5 = new Model.Sys_Set();
// newSet5.SetId = 5;
// newSet5.SetName = "CTM/T";
// newSet5.SetValue = this.drpCTMT.SelectedValue;
// BLL.Sys_SetService.AddSysSet(newSet5);
// }
//}
if (!string.IsNullOrEmpty(this.txtDes.Text.Trim()))
{
Model.Sys_Set set6 = BLL.Sys_SetService.GetSetById(6);
if (set6 != null)
{
set6.SetValue = this.txtDes.Text.Trim();
BLL.Sys_SetService.UpdateSysSet(set6);
}
else
{
Model.Sys_Set newSet6 = new Model.Sys_Set();
newSet6.SetId = 6;
newSet6.SetName = "评价说明";
newSet6.SetValue = this.txtDes.Text.Trim();
BLL.Sys_SetService.AddSysSet(newSet6);
}
}
ShowNotify("Save Succefully!", MessageBoxIcon.Success);
}
#endregion
#region 权限设置
/// <summary>
/// 菜单按钮权限
/// </summary>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.SysSetMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnSave.Hidden = false;
}
}
}
#endregion
}
}
+78
View File
@@ -0,0 +1,78 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.SysManage {
public partial class SysSet {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form SimpleForm1;
/// <summary>
/// txtDes 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtDes;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label Label1;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
}
}
@@ -0,0 +1,113 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UpdatePassword.aspx.cs" Inherits="FineUIPro.Web.common.SysManage.UpdatePassword" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>修改密码</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="UserId" AllowCellEditing="true" EnableColumnLines="true"
ClicksToEdit="2" DataIDField="UserId" AllowSorting="true" SortField="UserCode"
SortDirection="ASC" OnSort="Grid1_Sort"
AllowPaging="true" IsDatabasePaging="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" AllowFilters="true"
OnFilterChange="Grid1_FilterChange">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server">
<Items>
<f:TextBox ID="txtAccount" runat="server" Label="Account" EmptyText="Search by Account" LabelAlign="Right" AutoPostBack="true" OnTextChanged="Text_TextChanged"></f:TextBox>
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
<f:Button ID="btnEdit" ToolTip="Change Password" Text="Change Password" Icon="Pencil" runat="server" OnClick="btnEdit_Click">
</f:Button>
<f:Button ID="btnRefresh" ToolTip="Reset Password" Text="Reset Password" Icon="ArrowRefresh" ConfirmText="Be sure to reset the current user's initial password?" OnClick="btnRefresh_Click"
runat="server">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField Width="50px" TextAlign="Center">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="120px" ColumnID="Account" DataField="Account"
SortField="Account" FieldType="String" HeaderText="Account" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="UserName" DataField="UserName" EnableFilter="true"
SortField="UserName" FieldType="String" HeaderText="Name" HeaderTextAlign="Center" TextAlign="Left">
<Filter EnableMultiFilter="true" ShowMatcher="true">
<Operator>
<f:DropDownList ID="DropDowsnList1" runat="server">
<f:ListItem Text="equal to" Value="equal" />
<f:ListItem Text="include" Value="contain" Selected="true" />
</f:DropDownList>
</Operator>
</Filter>
</f:RenderField>
<f:RenderField Width="100px" ColumnID="UserCode" DataField="UserCode"
SortField="UserCode" FieldType="String" HeaderText="Number" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="180px" ColumnID="RoleName" DataField="RoleName"
SortField="RoleName" FieldType="String" HeaderText="Role" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="180px" ColumnID="DepartName" DataField="DepartName"
SortField="DepartName" FieldType="String" HeaderText="Department" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="140px" ColumnID="IsPost" DataField="IsPost"
SortField="IsPost" FieldType="String" HeaderText="Whether on-the-job" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="Number of records per page:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<f:ListItem Text="15" Value="15" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="Change password" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Self" EnableResize="true" runat="server" OnClose="Window1_Close" IsModal="true"
Width="500px" Height="300px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" EnablePostBack="true"
Icon="BulletEdit" runat="server" Text="Modify">
</f:MenuButton>
<f:MenuButton ID="btnMenuRefresh" OnClick="btnMenuRefresh_Click" EnablePostBack="true"
Icon="ArrowRefresh" ConfirmText="Be sure to reset the current user's initial password?" ConfirmTarget="Top" runat="server" Text="Reset Password">
</f:MenuButton>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
// 返回false,来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
F(menuID).show(); //showAt(event.pageX, event.pageY);
return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
</script>
</body>
</html>
@@ -0,0 +1,282 @@
using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
namespace FineUIPro.Web.common.SysManage
{
public partial class UpdatePassword : PageBase
{
#region 加载
protected void Page_Load(object sender, EventArgs e)
{
// 表头过滤
FilterDataRowItem = FilterDataRowItemImplement;
if (!IsPostBack)
{
if (this.CurrUser.Account != BLL.Const.Gly)
{
this.txtAccount.Hidden = true;
}
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
BindGrid();
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = "SELECT u.UserId,u.Account,u.UserCode,u.UserName,u.RoleId,r.RoleName,u.DepartId,dep.DepartName,(CASE WHEN u.IsPost IS NOT NULL THEN 'On duty' ELSE 'Not on duty' END) AS IsPost "
+ @" FROM Sys_User u"
+ @" LEFT JOIN dbo.Sys_Role AS r ON r.RoleId = u.RoleId"
+ @" LEFT JOIN dbo.Base_Depart AS dep ON dep.DepartId = u.DepartId WHERE 1=1 ";
//string strWhere = " where Account = @Account";
List<SqlParameter> listStr = new List<SqlParameter>();
if (this.CurrUser.Account != BLL.Const.Gly)
{
//strSql += strWhere;
strSql += " AND u.Account = @Account";
listStr.Add(new SqlParameter("@Account", this.CurrUser.Account));
}
else
{
if (!string.IsNullOrEmpty(this.txtAccount.Text.Trim()))
{
strSql += " AND u.Account LIKE @Account";
listStr.Add(new SqlParameter("@Account", "%" + this.txtAccount.Text.Trim() + "%"));
}
}
//SqlParameter[] parameter = new SqlParameter[]
//{
// new SqlParameter("@Account",this.CurrUser.Account),
//};
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
Grid1.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid1.FilteredData, tb);
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 Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 根据表头信息过滤列表数据
/// </summary>
/// <param name="sourceObj"></param>
/// <param name="fillteredOperator"></param>
/// <param name="fillteredObj"></param>
/// <param name="column"></param>
/// <returns></returns>
private bool FilterDataRowItemImplement(object sourceObj, string fillteredOperator, object fillteredObj, string column)
{
bool valid = false;
if (column == "UserName")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "UnitName")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "IsPost")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
}
return valid;
}
#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>
/// 分页显示条数下拉框
/// </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 btnRefresh_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var user = BLL.Sys_UserService.GetUsersByUserId(rowID);
if (user != null)
{
string password = BLL.Sys_UserService.GetEncryptionPassword(user.Account.ToLower());
if (user.UserId == BLL.Const.GlyId)
{
password = Sys_UserService.EncryptionPassword(BLL.Const.glyPassWord);
}
BLL.Sys_UserService.UpdatePassword(rowID, password);
}
}
BindGrid();
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Reset Password");
ShowNotify("The password has been reset to the original password!");
}
else
{
ShowNotify("Please select at least one line!");
}
}
/// <summary>
/// 右键重置密码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuRefresh_Click(object sender, EventArgs e)
{
this.btnRefresh_Click(null,null);
}
#endregion
#region 编辑
/// <summary>
/// 编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnEdit_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInParent("Please select at least one line!");
return;
}
string Id = Grid1.SelectedRowID;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("UpdatePasswordEdit.aspx?userId={0}", Id, "编辑 - ")));
}
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
btnEdit_Click(null, null);
}
/// <summary>
/// 右键编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
btnEdit_Click(null, null);
}
#endregion
#region 查询
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Text_TextChanged(object sender, EventArgs e)
{
BindGrid();
}
#endregion
}
}
@@ -0,0 +1,186 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.common.SysManage {
public partial class UpdatePassword {
/// <summary>
/// Head1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlHead Head1;
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar2;
/// <summary>
/// txtAccount 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtAccount;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnEdit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnEdit;
/// <summary>
/// btnRefresh 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnRefresh;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// DropDowsnList1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList DropDowsnList1;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuEdit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuEdit;
/// <summary>
/// btnMenuRefresh 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuRefresh;
}
}
@@ -0,0 +1,63 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UpdatePasswordEdit.aspx.cs" Inherits="FineUIPro.Web.common.SysManage.UpdatePasswordEdit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>修改密码</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:Label ID="txtUserName" runat="server" Label="Name" LabelWidth="140px">
</f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Label ID="txtAccount" runat="server" Label="Account" LabelWidth="140px">
</f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtOldPassword" Label="Old password" TextMode="Password" FocusOnPageLoad="true"
EmptyText="Enter old password" Required="true" ShowRedStar="true" runat="server" LabelWidth="140px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtNewPassword" Label="New password" TextMode="Password" Regex="^(?![a-zA-Z0-9]+$)(?![^a-zA-Z/D]+$)(?![^0-9/D]+$).{6,20}$"
RegexMessage="A password is made up of alphanumeric characters and special characters of not less than 6 digits!" EmptyText="Enter new password" Required="true" ShowRedStar="true" runat="server" LabelWidth="140px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtConfirmPassword" Label="Confirm password" TextMode="Password"
EmptyText="Enter the new password again" Required="true" ShowRedStar="true" runat="server" EnableBlurEvent="true" OnBlur="txtConfirmPassword_Blur" LabelWidth="140px">
</f:TextBox>
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnSave" Icon="SystemSave" Text="Save" runat="server" ToolTip="Save" ValidateForms="SimpleForm1"
OnClick="btnSave_Click">
</f:Button>
<f:Button ID="btnClose" EnablePostBack="false" Text="Close" ToolTip="Close" runat="server" Icon="SystemClose">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
</form>
</body>
</html>
@@ -0,0 +1,94 @@
using BLL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.common.SysManage
{
public partial class UpdatePasswordEdit : PageBase
{
/// <summary>
/// 修改密码页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnClose.OnClientClick = ActiveWindow.GetHideReference();
string userId = Request.Params["userId"];
if (this.CurrUser.Account == BLL.Const.Gly)
{
this.txtOldPassword.Hidden = true;
this.txtNewPassword.Focus();
}
if (!string.IsNullOrEmpty(userId))
{
var user = BLL.Sys_UserService.GetUsersByUserId(userId);
if (user != null)
{
this.txtUserName.Text = user.UserName;
this.txtAccount.Text = user.Account;
}
}
}
}
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
string userId = Request.Params["userId"];
var user = BLL.Sys_UserService.GetUsersByUserId(userId);
if (user != null)
{
if (this.CurrUser.Account != BLL.Const.Gly)
{
if (string.IsNullOrEmpty(this.txtOldPassword.Text))
{
Alert.ShowInParent("Please enter the old password!");
return;
}
if (user.Password != BLL.Sys_UserService.EncryptionPassword(this.txtOldPassword.Text))
{
Alert.ShowInParent("The old password was entered incorrectly!");
return;
}
}
if (this.txtNewPassword.Text != this.txtConfirmPassword.Text)
{
Alert.ShowInParent("The password is inconsistent with the confirmation password entered!");
return;
}
BLL.Sys_UserService.UpdatePassword(user.UserId, Sys_UserService.EncryptionPassword(this.txtNewPassword.Text));
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Modify the password!");
ShowNotify("Save successfully!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
}
/// <summary>
/// 确认密码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtConfirmPassword_Blur(object sender, EventArgs e)
{
if (this.txtNewPassword.Text != this.txtConfirmPassword.Text)
{
Alert.ShowInParent("The password is inconsistent with the confirmation password entered!");
return;
}
}
}
}
@@ -0,0 +1,114 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.common.SysManage {
public partial class UpdatePasswordEdit {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form SimpleForm1;
/// <summary>
/// txtUserName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label txtUserName;
/// <summary>
/// txtAccount 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label txtAccount;
/// <summary>
/// txtOldPassword 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtOldPassword;
/// <summary>
/// txtNewPassword 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtNewPassword;
/// <summary>
/// txtConfirmPassword 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtConfirmPassword;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// btnClose 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnClose;
}
}
+153
View File
@@ -0,0 +1,153 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserList.aspx.cs" Inherits="FineUIPro.Web.common.SysManage.UserList" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>用户信息</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" OnCustomEvent="PageManager1_CustomEvent" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="UserId" AllowCellEditing="true" EnableColumnLines="true"
ClicksToEdit="2" DataIDField="UserId" AllowSorting="true" SortField="DepartName,UserCode,UserName"
SortDirection="ASC" OnSort="Grid1_Sort"
AllowPaging="true" IsDatabasePaging="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" AllowFilters="true"
OnFilterChange="Grid1_FilterChange">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server">
<Items>
<f:TextBox ID="txtUserName" runat="server" LabelAlign="Right" Label="English name" EmptyText="Search by English name" LabelWidth="120px" AutoPostBack="true" OnTextChanged="Text_TextChanged"></f:TextBox>
<f:TextBox ID="txtAccount" runat="server" LabelAlign="Right" Label="Account" EmptyText="Search by Account" AutoPostBack="true" OnTextChanged="Text_TextChanged"></f:TextBox>
<f:TextBox ID="txtDepartName" runat="server" LabelAlign="Right" Label="DepartName" Width="250px" AutoPostBack="true" OnTextChanged="Text_TextChanged"></f:TextBox>
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
<f:FileUpload runat="server" ID="fuAttachUrl" EmptyText="Select the file to import">
</f:FileUpload>
<f:HiddenField ID="hdFileName" runat="server"></f:HiddenField>
<f:Button ID="btnImport" Icon="ApplicationEdit" runat="server" Text="Import" ToolTip="Import data" OnClick="btnImport_Click">
</f:Button>
<f:Button ID="btnDownLoad" runat="server" Icon="ApplicationGo" Text="Download the template" ToolTip="Download the template" OnClick="btnDownLoad_Click">
</f:Button>
<f:Button ID="btnNew" ToolTip="Add" Text="Add" Icon="Add" EnablePostBack="false" runat="server">
</f:Button>
<f:Button ID="btnEdit" ToolTip="Modify" Text="Modify" Icon="Pencil" runat="server" OnClick="btnEdit_Click">
</f:Button>
<f:Button ID="btnDelete" ToolTip="Delete" Text="Delete" Icon="Delete" ConfirmText="Make sure to delete the current data?" OnClick="btnDelete_Click"
runat="server">
</f:Button>
<%--<f:Button ID="btnPrint" ToolTip="Print" Text="Print" Icon="Printer" runat="server" OnClick="btnPrint_Click">
</f:Button>--%>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField Width="50px" TextAlign="Center">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="100px" ColumnID="Account" DataField="Account"
SortField="Account" FieldType="String" HeaderText="Account" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="ChineseName" DataField="ChineseName" EnableFilter="true"
SortField="ChineseName" FieldType="String" HeaderText="Chinese name" HeaderTextAlign="Center" TextAlign="Left">
<Filter EnableMultiFilter="true" ShowMatcher="true">
<Operator>
<f:DropDownList ID="DropDownList1" runat="server">
<f:ListItem Text="equal to" Value="equal" />
<f:ListItem Text="include" Value="contain" Selected="true" />
</f:DropDownList>
</Operator>
</Filter>
</f:RenderField>
<f:RenderField Width="120px" ColumnID="UserName" DataField="UserName" EnableFilter="true"
SortField="UserName" FieldType="String" HeaderText="Enghlis name" HeaderTextAlign="Center" TextAlign="Left">
<Filter EnableMultiFilter="true" ShowMatcher="true">
<Operator>
<f:DropDownList ID="DropDowsnList1" runat="server">
<f:ListItem Text="equal to" Value="equal" />
<f:ListItem Text="include" Value="contain" Selected="true" />
</f:DropDownList>
</Operator>
</Filter>
</f:RenderField>
<%--<f:RenderField Width="90px" ColumnID="UserCode" DataField="UserCode"
SortField="UserCode" FieldType="String" HeaderText="Number" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>--%>
<f:RenderField Width="150px" ColumnID="RoleName" DataField="RoleName"
SortField="RoleName" FieldType="String" HeaderText="Role" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="110px" ColumnID="Phone" DataField="Phone"
SortField="Phone" FieldType="String" HeaderText="Phone number" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="DepartName" DataField="DepartName"
SortField="DepartName" FieldType="String" HeaderText="Bu.Code" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="220px" ColumnID="Email" DataField="Email"
SortField="Email" FieldType="String" HeaderText="E-Mail" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="140px" ColumnID="IsPost" DataField="IsPost"
SortField="IsPost" FieldType="String" HeaderText="Whether on-the-job" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="140px" ColumnID="Remark" DataField="Remark" FieldType="String" HeaderText="Remark" HeaderTextAlign="Center" TextAlign="Left" ExpandUnusedSpace="true">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
<f:Listener Event="dataload" Handler="onGridDataLoad" />
</Listeners>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="Number of records per page:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<f:ListItem Text="15" Value="15" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="User" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Self" EnableResize="true" runat="server" OnClose="Window1_Close" IsModal="true"
Width="800px" Height="460px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" EnablePostBack="true"
Icon="BulletEdit" runat="server" Text="Modify">
</f:MenuButton>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
Icon="Delete" ConfirmText="Delete selected row?" ConfirmTarget="Top" runat="server" Text="Delete">
</f:MenuButton>
</f:Menu>
<f:Window ID="Window2" Title="Print" Hidden="true" EnableIFrame="true"
EnableMaximize="true" Target="Top" EnableResize="true" runat="server"
IsModal="true" Width="900px" Height="650px">
</f:Window>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
// 返回false,来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
F(menuID).show(); //showAt(event.pageX, event.pageY);
return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
function onGridDataLoad(event) {
this.mergeColumns(['DepartName']);
}
</script>
</body>
</html>
@@ -0,0 +1,570 @@
namespace FineUIPro.Web.common.SysManage
{
using BLL;
using BLL.Common;
using Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
public partial class UserList : PageBase
{
#region 加载
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
// 表头过滤
FilterDataRowItem = FilterDataRowItemImplement;
if (!IsPostBack)
{
GetButtonPower();//权限设置
btnNew.OnClientClick = Window1.GetShowReference("UserListEdit.aspx") + "return false;";
btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("Please select at least one item!");
btnDelete.ConfirmText = String.Format("Are you sure you want to delete the selected &nbsp;<b><script>{0}</script></b>&nbsp; rows?", Grid1.GetSelectedCountReference());
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
BindGrid();
}
else if (GetRequestEventArgument() == "FilterChange")
{
BindGrid();
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = @"SELECT u.UserId,u.Account,u.UserCode,u.UserName,u.ChineseName,u.RoleId,
r.RoleName,u.Phone,u.DepartId,dep.DepartName,u.Email,
(CASE WHEN u.IsPost = 1 THEN 'On duty' ELSE 'Not on duty' END) AS IsPost,
u.Remark
FROM Sys_User AS u
LEFT JOIN dbo.Sys_Role AS r ON r.RoleId = u.RoleId
LEFT JOIN dbo.Base_Depart AS dep ON dep.DepartId = u.DepartId
where UserId != @UserId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@UserId", Const.GlyId));
if (!string.IsNullOrEmpty(this.txtUserName.Text.Trim()))
{
strSql += " AND u.UserName LIKE @userName";
listStr.Add(new SqlParameter("@userName", "%" + this.txtUserName.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtAccount.Text.Trim()))
{
strSql += " AND u.Account LIKE @Account";
listStr.Add(new SqlParameter("@Account", "%" + this.txtAccount.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtDepartName.Text.Trim()))
{
strSql += " AND dep.DepartName LIKE @DepartName";
listStr.Add(new SqlParameter("@DepartName", "%" + this.txtDepartName.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
Grid1.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
protected void Text_TextChanged(object sender, EventArgs e)
{
BindGrid();
}
#region 过滤表头
/// <summary>
/// 过滤表头
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 根据表头信息过滤列表数据
/// </summary>
/// <param name="sourceObj"></param>
/// <param name="fillteredOperator"></param>
/// <param name="fillteredObj"></param>
/// <param name="column"></param>
/// <returns></returns>
private bool FilterDataRowItemImplement(object sourceObj, string fillteredOperator, object fillteredObj, string column)
{
bool valid = false;
if (column == "UserName")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "UnitCode")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "UnitName")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "ChineseName")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
if (column == "IsPost")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.ToString();
if (fillteredOperator == "equal" && sourceValue == fillteredValue)
{
valid = true;
}
}
return valid;
}
#endregion
#region 删除数据
/// <summary>
/// 批量删除数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDelete_Click(object sender, EventArgs e)
{
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();
if (judgementDelete(rowID))
{
BLL.Sys_LogService.DeleteLogByUserId(rowID);
BLL.Sys_UserService.DeleteUserById(rowID);
}
}
BindGrid();
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Delete user information!");
ShowNotify("Deleted successfully!");
}
}
#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>
/// 分页显示条数下拉框
/// </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 btnEdit_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInParent("Please select at least one record!");
return;
}
string Id = Grid1.SelectedRowID;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("UserListEdit.aspx?userId={0}", Id, "编辑 - ")));
}
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
btnEdit_Click(null, null);
}
/// <summary>
/// 右键编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
btnEdit_Click(null, null);
}
#endregion
#region 判断是否可删除
/// <summary>
/// 判断是否可以删除
/// </summary>
/// <returns></returns>
private bool judgementDelete(string userId)
{
string content = "";
//if (BLL.Common_NoticeService.GetNoticeCountByUserId(userId) > 0)
//{
// content = "通知中已经使用了该用户,不能删除!";
//}
//if (Funs.DB.Project_User.FirstOrDefault(x=>x.UserId == userId) != null)
//{
// content = "项目设置参与用户已经使用了该用户,不能删除!";
//}
if (content == "")
{
return true;
}
else
{
ShowNotify(content);
return false;
}
}
#endregion
#region 权限设置
/// <summary>
/// 菜单按钮权限
/// </summary>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.UserMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnEdit.Hidden = false;
this.btnMenuEdit.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnDelete.Hidden = false;
this.btnMenuDelete.Hidden = false;
}
}
}
#endregion
#region 导入
#region 定义项
/// <summary>
/// 上传预设的虚拟路径
/// </summary>
private string initPath = Const.ExcelUrl;
/// <summary>
/// 错误集合
/// </summary>
public static string errorInfos = string.Empty;
#endregion
#region 模板下载
/// <summary>
/// 模板下载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDownLoad_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Confirm.GetShowReference("Are you sure to download the import template?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
}
/// <summary>
/// 下载导入模板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
{
if (e.EventArgument == "Confirm_OK")
{
string rootPath = Server.MapPath("~/");
string uploadfilepath = rootPath + Const.UserTemplateUrl;
string filePath = Const.UserTemplateUrl;
string fileName = Path.GetFileName(filePath);
FileInfo info = new FileInfo(uploadfilepath);
long fileSize = info.Length;
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.ContentType = "excel/plain";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AddHeader("Content-Length", fileSize.ToString().Trim());
Response.TransmitFile(uploadfilepath, 0, fileSize);
Response.End();
}
}
#endregion
#region 导入
/// <summary>
/// 导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImport_Click(object sender, EventArgs e)
{
string message = string.Empty;
errorInfos = string.Empty;
List<Sys_User> userList = new List<Sys_User>();
try
{
if (this.fuAttachUrl.HasFile == false)
{
ShowNotify("Please select Excel file!", MessageBoxIcon.Warning);
return;
}
string IsXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower();
if (IsXls != ".xls" && IsXls != ".xlsx")
{
ShowNotify("Only Excel files can be selected!", MessageBoxIcon.Warning);
return;
}
if (userList != null)
{
userList.Clear();
}
if (!string.IsNullOrEmpty(errorInfos))
{
errorInfos = string.Empty;
}
string rootPath = Server.MapPath("~/");
string initFullPath = rootPath + initPath;
if (!Directory.Exists(initFullPath))
{
Directory.CreateDirectory(initFullPath);
}
//指定上传文件名称
this.hdFileName.Text = BLL.Funs.GetNewFileName() + IsXls;
//上传文件路径
string filePath = initFullPath + this.hdFileName.Text;
//文件上传服务器
this.fuAttachUrl.PostedFile.SaveAs(filePath);
//文件上传服务器后的名称
string fileName = rootPath + initPath + this.hdFileName.Text;
//读取Excel
DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out errorInfos, true);
//验证Excel读取是否有误
if (!string.IsNullOrEmpty(errorInfos))
{
ShowNotify(errorInfos, MessageBoxIcon.Warning);
return;
}
//导入数据库
var departs = (from x in Funs.DB.Base_Depart select x).ToList();
if (ds.Tables.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Sys_User u = new Sys_User();
#region 数据验证和赋值
string BGDID = ds.Tables[0].Rows[i]["BGDID"].ToString();
if (BGDID != null && !string.IsNullOrEmpty(BGDID))
{
u.Account = BGDID;
}
else
{
errorInfos += (i + 2) + "Line, [BGDID] cannot be empty!</br>";
}
string Section = ds.Tables[0].Rows[i]["Section"].ToString();
if (Section != null && !string.IsNullOrEmpty(Section))
{
u.DepartId = Section;
}
else
{
errorInfos += (i + 2) + "Line, [Section] cannot be empty!</br>";
}
u.ChineseName = ds.Tables[0].Rows[i]["Name(CN)"].ToString();
u.Email = ds.Tables[0].Rows[i]["Mail"].ToString();
u.Address = ds.Tables[0].Rows[i]["Location"].ToString();
userList.Add(u);
#endregion
}
if (!string.IsNullOrEmpty(errorInfos))
{
ShowNotify(errorInfos, MessageBoxIcon.Warning, 10000);
return;
}
if (userList.Count > 0)
{
foreach (var item in userList)
{
string departId = string.Empty;
var dep = departs.Where(x => x.DepartCode == item.DepartId).FirstOrDefault();
if (dep == null)
{
Model.Base_Depart newDepart = new Base_Depart();
departId = SQLHelper.GetNewID(typeof(Model.Base_Depart));
newDepart.DepartId = departId;
newDepart.DepartCode = item.DepartId;
newDepart.DepartName = item.DepartId;
BLL.DepartService.AddDepart(newDepart);
}
var user = BLL.Sys_UserService.GetUserByAccount(item.Account);
if (user != null)
{
user.DepartId = departId;
user.ChineseName = item.ChineseName;
user.Email = item.Email;
user.Address = item.Address;
BLL.Sys_UserService.UpdateUserList(user);
}
else
{
Model.Sys_User newUser = new Sys_User();
newUser.UserId = SQLHelper.GetNewID(typeof(Model.Sys_User));
newUser.Account = item.Account;
newUser.UserName = item.UserName;
newUser.DepartId = departId;
newUser.ChineseName = item.ChineseName;
newUser.Password = Sys_UserService.GetEncryptionPassword(newUser.Account);
newUser.RoleId = BLL.Const.Role_CommonUsers;
newUser.IsPost = true;
newUser.Email = item.Email;
newUser.Address = item.Address;
BLL.Sys_UserService.AddUser(newUser);
}
}
}
ShowNotify("Import success!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
else
{
ShowAlert("No data!", MessageBoxIcon.Warning);
return;
}
}
catch (Exception ex)
{
ShowAlert("'" + ex.Message + "'", MessageBoxIcon.Warning);
}
}
#endregion
#endregion
}
}
+258
View File
@@ -0,0 +1,258 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.common.SysManage {
public partial class UserList {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar2;
/// <summary>
/// txtUserName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtUserName;
/// <summary>
/// txtAccount 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtAccount;
/// <summary>
/// txtDepartName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtDepartName;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// fuAttachUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.FileUpload fuAttachUrl;
/// <summary>
/// hdFileName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hdFileName;
/// <summary>
/// btnImport 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnImport;
/// <summary>
/// btnDownLoad 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnDownLoad;
/// <summary>
/// btnNew 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnNew;
/// <summary>
/// btnEdit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnEdit;
/// <summary>
/// btnDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnDelete;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// DropDownList1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList DropDownList1;
/// <summary>
/// DropDowsnList1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList DropDowsnList1;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuEdit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuEdit;
/// <summary>
/// btnMenuDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDelete;
/// <summary>
/// Window2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window2;
}
}
@@ -0,0 +1,79 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserListEdit.aspx.cs" Inherits="FineUIPro.Web.common.SysManage.UserListEdit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>编辑用户</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtChineseName" runat="server" Label="Chinese name" LabelWidth="140px">
</f:TextBox>
<f:TextBox ID="txtUserName" runat="server" Label="English name" Required="true" ShowRedStar="true" FocusOnPageLoad="true" LabelWidth="140px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtAccount" runat="server" Label="Account" Required="true" ShowRedStar="true" LabelWidth="140px">
</f:TextBox>
<f:DropDownList ID="drpRole" runat="server" Label="Role" EnableEdit="false"
ForceSelection="false" Required="true" ShowRedStar="true" AutoPostBack="true"
OnSelectedIndexChanged="drpRole_SelectedIndexChanged" LabelWidth="140px">
</f:DropDownList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpDepart" runat="server" Label="Bu.Code" EnableEdit="true"
ForceSelection="false" LabelWidth="140px" Required="true" ShowRedStar="true">
</f:DropDownList>
<f:TextBox ID="txtEmail" runat="server" Label="E-Mail" RegexPattern="EMAIL" LabelWidth="140px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items> <f:TextBox ID="txtPhone" runat="server" Label="Phone number" MaxLength="15" LabelWidth="140px">
</f:TextBox>
<f:TextBox ID="txtEmailPassword" runat="server" Label="E-mail password" TextMode="Password" LabelWidth="140px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:CheckBox ID="cbIsPost" Checked="true" Label="Whether on-the-job" runat="server" LabelWidth="140px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtAddress" runat="server" Label="Location" LabelWidth="140px"></f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRemarks" runat="server" Label="Remarks" LabelWidth="140px"></f:TextArea>
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnSave" Icon="SystemSave" Text="Save" runat="server" ToolTip="Save" ValidateForms="SimpleForm1"
OnClick="btnSave_Click">
</f:Button>
<f:Button ID="btnClose" EnablePostBack="false" Text="Close" ToolTip="Close" runat="server" Icon="SystemClose">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
</form>
</body>
</html>
@@ -0,0 +1,182 @@
using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.common.SysManage
{
public partial class UserListEdit : PageBase
{
#region 加载
/// <summary>
/// 用户编辑页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnClose.OnClientClick = ActiveWindow.GetHideReference();
GetButtonPower();//按钮权限
//角色
this.drpRole.DataTextField = "RoleName";
this.drpRole.DataValueField = "RoleId";
this.drpRole.DataSource = BLL.Sys_RoleService.GetRoleList();
this.drpRole.DataBind();
Funs.FineUIPleaseSelect(this.drpRole);
//部门
this.drpDepart.DataTextField = "DepartName";
this.drpDepart.DataValueField = "DepartId";
this.drpDepart.DataSource = BLL.DepartService.GetDepartList();
this.drpDepart.DataBind();
Funs.FineUIPleaseSelect(this.drpDepart);
string userId = Request.Params["userId"];
if (!string.IsNullOrEmpty(userId))
{
var user = BLL.Sys_UserService.GetUsersByUserId(userId);
if (user != null)
{
if (!string.IsNullOrEmpty(user.DepartId))
{
this.drpDepart.SelectedValue = user.DepartId;
}
//this.txtUserCode.Text = user.UserCode;
this.txtUserName.Text = user.UserName;
this.txtChineseName.Text = user.ChineseName;
this.txtAccount.Text = user.Account;
if (!string.IsNullOrEmpty(user.RoleId))
{
this.drpRole.SelectedValue = user.RoleId;
}
if (user.IsPost.HasValue)
{
this.cbIsPost.Checked = user.IsPost.Value;
}
this.txtPhone.Text = user.Phone;
this.txtEmail.Text = user.Email;
this.txtRemarks.Text = user.Remark;
this.txtAddress.Text = user.Address;
}
}
}
}
#endregion
#region 保存
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
string userId = Request.Params["userId"];
if (this.drpRole.SelectedValue == BLL.Const._Null)
{
ShowNotify("Please select Role!", MessageBoxIcon.Warning);
return;
}
if (this.drpDepart.SelectedValue == BLL.Const._Null)
{
ShowNotify("Please select Bu.Code!", MessageBoxIcon.Warning);
return;
}
if (BLL.Sys_UserService.IsExistUserAccount(userId, this.txtAccount.Text.Trim()))
{
Alert.ShowInParent("The account already exists!");
return;
}
//else if (BLL.Sys_UserService.IsExistUserName(userId, this.txtUserName.Text.Trim()))
//{
// Alert.ShowInParent("The user already exists!");
// return;
//}
Model.Sys_User newUser = new Model.Sys_User();
//newUser.UserCode = this.txtUserCode.Text.Trim();
newUser.UserName = this.txtUserName.Text.Trim();
newUser.ChineseName = this.txtChineseName.Text.Trim();
newUser.Account = this.txtAccount.Text.Trim();
if (this.drpDepart.SelectedValue != Const._Null)
{
newUser.DepartId = this.drpDepart.SelectedValue;
}
if (this.drpRole.SelectedValue != Const._Null)
{
newUser.RoleId = this.drpRole.SelectedValue;
}
newUser.IsPost = cbIsPost.Checked;
newUser.Phone = this.txtPhone.Text.Trim();
newUser.Email = this.txtEmail.Text.Trim();
if (!String.IsNullOrEmpty(this.txtEmailPassword.Text.Trim()))
{
newUser.EmailPassword = this.txtEmailPassword.Text.Trim();
}
newUser.Address = this.txtAddress.Text.Trim();
newUser.Remark = this.txtRemarks.Text.Trim();
if (string.IsNullOrEmpty(userId))
{
string newKeyID = SQLHelper.GetNewID(typeof(Model.Sys_User));
newUser.UserId = newKeyID;
newUser.Password = Sys_UserService.GetEncryptionPassword(newUser.Account);
BLL.Sys_UserService.AddUser(newUser);
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Add user information");
ShowNotify("Save successfully");
}
else
{
newUser.UserId = userId;
BLL.Sys_UserService.UpdateUser(newUser);
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Modify user information");
ShowNotify("Save successfully");
}
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
#endregion
#region 角色下拉选择事件
protected void drpRole_SelectedIndexChanged(object sender, EventArgs e)
{
//string roleId = this.drpRole.SelectedValue;
//Model.Sys_User u = BLL.Sys_UserService.GetMaxUserByRoleId(roleId);
//List<Model.Sys_User> m = (from y in Funs.DB.Sys_User where y.IsPost == true && (y.UserCode != "" && y.UserCode != null) select y).ToList();
//Model.Sys_User user = (from x in m where Convert.ToInt32(x.UserCode) >= 201 && Convert.ToInt32(x.UserCode) < 900 orderby Convert.ToInt32(x.UserCode) descending select x).FirstOrDefault();
//if (user == null || Convert.ToInt32(user.UserCode) < 161)
//{
// this.txtUserCode.Text = "201";
//}
//else
//{
// this.txtUserCode.Text = (Convert.ToInt32(user.UserCode) + 1).ToString();
//}
}
#endregion
#region 权限设置
/// <summary>
/// 菜单按钮权限
/// </summary>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.UserMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnSave.Hidden = false;
}
}
}
#endregion
}
}
+168
View File
@@ -0,0 +1,168 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.common.SysManage {
public partial class UserListEdit {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form SimpleForm1;
/// <summary>
/// txtChineseName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtChineseName;
/// <summary>
/// txtUserName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtUserName;
/// <summary>
/// txtAccount 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtAccount;
/// <summary>
/// drpRole 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpRole;
/// <summary>
/// drpDepart 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpDepart;
/// <summary>
/// txtEmail 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtEmail;
/// <summary>
/// txtPhone 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtPhone;
/// <summary>
/// txtEmailPassword 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtEmailPassword;
/// <summary>
/// cbIsPost 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.CheckBox cbIsPost;
/// <summary>
/// txtAddress 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtAddress;
/// <summary>
/// txtRemarks 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtRemarks;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// btnClose 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnClose;
}
}
@@ -0,0 +1,89 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserToEMial.aspx.cs" Inherits="FineUIPro.Web.SysManage.UserToEMial" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="UserToEmailId" AllowCellEditing="true" EnableColumnLines="true"
ClicksToEdit="2" DataIDField="UserToEmailId" AllowSorting="true" SortField="DepartName,UserName"
SortDirection="ASC" OnSort="Grid1_Sort" AllowPaging="true" IsDatabasePaging="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server">
<Items>
<%--<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>--%>
<f:Button ID="btnSelect" runat="server" Text="Select" Icon="SystemSearch" OnClick="btnSelect_Click"></f:Button>
<f:Button ID="btnDelete" ToolTip="Delete" Text="Delete" Icon="Delete" ConfirmText="Make sure to delete the current data?" OnClick="btnDelete_Click"
runat="server">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField Width="50px" TextAlign="Center">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="200px" ColumnID="UserName" DataField="UserName" EnableFilter="true" FieldType="String" HeaderText="Name" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="200px" ColumnID="RoleName" DataField="RoleName"
SortField="RoleName" FieldType="String" HeaderText="Role" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="200px" ColumnID="DepartName" DataField="DepartName" FieldType="String" HeaderText="Department" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="260px" ColumnID="Email" DataField="Email" FieldType="String" HeaderText="E-Mail" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:CheckBoxField Width="100px" RenderAsStaticField="true" DataField="IsLeader" HeaderText="Is Leader" TextAlign="Center"/>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="Number of records per page:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<f:ListItem Text="15" Value="15" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="Set up evaluation users" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="true" runat="server" OnClose="Window1_Close" IsModal="true"
Width="900px" Height="560px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
Icon="Delete" ConfirmText="Delete selected row?" ConfirmTarget="Top" runat="server" Text="Delete">
</f:MenuButton>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
// 返回false,来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
F(menuID).show(); //showAt(event.pageX, event.pageY);
return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
</script>
</body>
</html>
@@ -0,0 +1,204 @@
using BLL;
using System;
using System.Data;
using System.Linq;
namespace FineUIPro.Web.SysManage
{
public partial class UserToEMial : PageBase
{
#region 加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();//权限设置
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
BindGrid();
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = @"SELECT UserToEMial.UserToEmailId,
UserToEMial.UserId,
UserToEMial.IsLeader,
Roles.RoleName,
Users.UserName,
Users.Email,
Depart.DepartName "
+ @" FROM Sys_UserToEMial AS UserToEMial"
+ @" LEFT JOIN dbo.Sys_User AS Users ON Users.UserId = UserToEMial.UserId"
+ @" LEFT JOIN dbo.Sys_Role AS Roles ON Roles.RoleId = Users.RoleId"
+ @" LEFT JOIN dbo.Base_Depart AS Depart ON Depart.DepartId = Users.DepartId";
//SqlParameter[] parameter = new SqlParameter[]
// {
// new SqlParameter("@UserId",Const.GlyId)
//};
DataTable tb = SQLHelper.GetDataTableRunText(strSql, null);
// 2.获取当前分页数据
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 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 btnSelect_Click(object sender, EventArgs e)
{
string window = String.Format("SelectUserToEMail.aspx", "查找 - ");
PageContext.RegisterStartupScript(Window1.GetSaveStateReference() + Window1.GetShowReference(window));
}
#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 userToEMial = BLL.Sys_UserToEMialService.GetUserToEmialById(rowID);
if (userToEMial != null)
{
if (judgementDelete(rowID, false))
{
BLL.Sys_UserToEMialService.DeleteUserToEMail(rowID);
}
}
}
BindGrid();
BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Delete Set up evaluation users information");
ShowNotify("Deleted successfully!");
}
}
/// <summary>
/// 判断是否可以删除
/// </summary>
/// <returns></returns>
private bool judgementDelete(string id, bool isShow)
{
string content = string.Empty;
//if (Funs.DB.Sys_User.FirstOrDefault(x => x.RoleId == id) != null)
//{
// content = "This role is already in use in [user information] and cannot be deleted!";
//}
if (string.IsNullOrEmpty(content))
{
return true;
}
else
{
if (isShow)
{
Alert.ShowInTop(content);
}
return false;
}
}
#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>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.UserToEMialMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnSelect.Hidden = false;
}
}
}
#endregion
}
}
+141
View File
@@ -0,0 +1,141 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.SysManage {
public partial class UserToEMial {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar2;
/// <summary>
/// btnSelect 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSelect;
/// <summary>
/// btnDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnDelete;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDelete;
}
}