人事管理系统论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
录
前言4
1开发工具4
2运行环境4
3背景和功能4
第一章系统需求分析 5
1.1该系统需要完成如下功能:5
1.2针对本系统,通过员工管理内容和过程分析,设计的数据项和数据结构如下:5
1.3本系统开发设计思想有以下几点。
6
1.4功能分析6
1.5功能模块设计7
第二章数据库的设计7
2.1安装SQL7.0 FOR WIN2K数据库管理系统7
2.2系统数据模型设计9
2.2.1关系模型:9
2.2.2 库概念结构设计10
2.2.3数据库逻辑结构设计11
第三章功能模块设计14
3.1三层结构14
3.1.1表示层(common)14
3.1.2业务逻辑层(BLL)14
3.1.3数据访问层(DA)14
3.2登陆程序设计16
3.3人事管理模块设计19
3.3.1UML活动关系图19
3.3.2功能设计20
3.3.3 机构管理20
3.4系统管理模块设计33
第四章总结37
致谢37
参考文献:38
人事管理系统摘要
摘要:问题定义及内容简介
本系统是人事管理系统,它主要实现管理员如何对普通用户进行授权,如何插入、删除一个员工的信息,用户如何浏览员工的所有信息,以及用户如何查询自己想要的结果,也即是通过输入查询条件,显示符合条件的员工记录以及如何显示这个员工的全部信息。
如何对查询或统计出来的符合条件的记录用报表的形式打印出来,窗口打开时的排放顺序,也即
是平铺还是重叠,最后得提供一下如何使用这个系统,如何解决用户可能会遇到的问题以及这个系统中的难点和开发技巧等等。
系统管理,包括人员编码维护、用户授权和程序定义。
输入,包括基本信息、学历信息,照片和工资信息的插入和删除。
查看,包括基本信息、学历信息、考勤信息和工资信息的浏览,还有通过输入查询条件查询用户所要的记录,还可以双击某个员工所在列,就可以显示出这个员工的所有信息。
维护,包括基本信息、学历信息、考勤信息和工资信息的修改,这个功能只能由管理员来操作,普通用户没这个权力。
报表,包括基本信息以及工资信息的查询、统计和打印。
本系统经过测试,运行稳定,已得到认可。
前言
1开发工具
SQL7.0数据开发环境Microsoft Visual Studio .NET 2003
2运行环境
硬件环境:CPU为赛扬配置以上机型。
软件环境:支持中文的Windows 98、Windows2000、Windows XP各种版本操作平台。
3背景和功能
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事档案的管理势在必行。
当前企业信息管理系统正在从C/S结构向B/S结构转移,但是由于安全性等方面的因素,C/S结构的管理信息系统仍然占据企业管理信息系统的主流。
人事管理系统是现代企业管理工作不可缺少的一部分,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件。
人事管理系统可以用于支持企业完成劳动人事管理工作,有如下3个方面的目标。
1、支持企业实现规范化的管理。
2、支持企业高效率完成劳动人事管理的日常业务,包括新员工加入时人事档案的建立,老员工转出、辞职、退休等。
3、支持企业进行劳动人事管理及其相关方面的科学决策,如企业领导根据现有的员工数目决定招聘的人数等。
第一章系统需求分析
1.1该系统需要完成如下功能:
1、员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况、考勤信息、工资信息。
2、对用户进行授权。
3、员工各种信息的修改。
4、对于转出、辞职、退休员工信息的删除。
5、按照某种条件,查询统计符合条件的员工信息。
6、对查询、统计的结果输出。
7、人事系统的使用帮助。
1.2针对本系统,通过员工管理内容和过程分析,设计的数据项和数据结构如下:
1、员工基本情况。
包括的数据项有员工号、员工姓名、性别、所在部门、身份证号、生日、籍贯、国籍、民族、政治面貌、参加时间、血型、开始工作时间、家庭住址、联系电话、岗位代号。
2、员工学历信息,包括的数据项有员工号、学历、专业、毕业时间、毕业学校、学校类型、外语1、外语1级别、外语2、外语2级别。
3、员工工资信息。
包括的数据项有员工号,姓名,底薪,补贴,奖金,加班,代扣养老金,代扣医疗保险,代扣住房公积金,所得税,房贴,房租,实发工资。
4、人员编码信息。
包括的数据项有人员编码,人员姓名,密码。
5、用户授权信息。
包括的数据项有序号,人员编码,程序号。
1.3本系统开发设计思想有以下几点。
1、尽量采用学校现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用学校现有资源,提高系统开发水平和应用的目的。
2、系统应符合学校人事管理的规定,满足学校日常人事管理工作需要,并达到操作过程中的直观、方便、实用、安全等要求。
3、系统采用C/S体系结构,Client(客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server(服务器端)则用于提供数据服务。
系统分析等前期工作应尽量详细完善,以便学校以后体系结构的改变,对于一些安全性要求不高的信息可以方便地采用Brower/Server的方式进行访问。
4、系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
5、系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
与数据库之间的访问:
1.4功能分析
本系统主要完成以下几个功能:。
人事管理管理各种信息的输入,包括部门信息、机构信息、人员管理、照片输入等。
人员管理各种信息的查询、修改和维护。
企业各部门的人员需求的管理。
操作日志的管理。
人员管理系统的使用帮助。
1.5功能模块设计
在系统功能分析的基础上,考虑程序编制的特点,得到如图所示的系统功能模块图。
第二章数据库的设计
2.1安装SQL7.0 for Win2K数据库管理系统
创建数据库:
在Enterprise Manager中打开本地服务器结点,如图所示:
首先选中数据库结点,然后从action菜单或在右面窗口点击鼠标右键,从弹出的菜单中选new database,系统弹出下图:
在name中填上数据库的名字ckgl,在database files选项组中会自动产生此数据库的主文件,然后选择保存的相应路径。
在transaction log标签中,对数据库的日志文件进行设置,并保存在相应的路径下。
2.2系统数据模型设计
2.2.1关系模型:
1、员工登陆日志表(日志ID号,用户ID号,登陆时间,登陆是否成功,登出时间,登录主机IP地址,登录打败时间)
员工登陆日志表:
2、员工基本信息(员工号,姓名,所在系号,所在系名,性别,生日,籍贯,国籍,民族,身份证号,婚姻状况,健康状况,政治面貌,参加时间,血型,开始工作时间,家庭住址,电话,岗
位代号)
人员基本信息(MrBaseInf)
3、员工婚姻信息(员工号,爱人代号,爱人姓名,爱人生日,结婚时间,爱人工作,位,爱人政治面貌,爱人工作职务)
4、员工学历信息(员工号,学历,专业,毕业时间,毕业学校,学校类型,外语1,外语1级别,外语2,外语2级别)
5、员工考勤信息(员工号,姓名,日期,本月天数,公休假天数,应出勤天数,请假,节假日加班,其它加班)
6、员工工资信息(员工号,姓名,底薪,补贴,奖金,加班,代扣养老金,代扣医疗保险,代扣住房公积金,所得税,房贴,房租,实发工资)
7、人员编码(人员编码,人员姓名,密码)
8、用户授权(序号,人员编码,程序号)
9、部门基本信息(部门名称,机构,负责人,电话号码1,电话号码2,传真)
部门基本信息(mrDepartment):
2.2.2 库概念结构设计
这一设计阶段是在需求分析的基础上,设计出能够满足企业需求的管理。
本实例根据上面的设计规划出的实体有人员理实体、日志实体、信息实体、照片实体、部门实体、项目实体。
各个实体的E-R图及其关系描述如下。
下图为人事管理实体E-R图。
下图为项目管理实体E-R图:
下图为日志实体E-R图:
2.2.3数据库逻辑结构设计
在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
(共两个关系表)
表一代码:
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
ALTER VIEW sysconstraints AS SELECT
constid = convert(int, id),
id = convert(int, parent_obj),
colid = convert(smallint, info),
spare1 = convert(tinyint, 0),
status = convert(int,
CASE xtype
WHEN ’PK’ THEN 1 WHEN ’UQ’ THEN 2 WHEN ’F’ THEN 3
WHEN ’C’ THEN 4 WHEN ’D’ THEN 5 ELSE 0 END
+ CASE WHEN info != 0 -- CNST_COLUMN / CNST_TABLE
THEN (16) ELSE (32) END
+ CASE WHEN (status & 16)!=0 -- CNST_CLINDEX
THEN (512) ELSE 0 END
+ CASE WHEN (status & 32)!=0 -- CNST_NCLINDEX
THEN (1024) ELSE 0 END
+ (2048) -- CNST_NOTDEFERRABLE
+ CASE WHEN (status & 256)!=0 -- CNST_DISABLE
THEN (16384) ELSE 0 END
+ CASE WHEN (status & 512)!=0 -- CNST_ENABLE
THEN (32767) ELSE 0 END
+ CASE WHEN (status & 4)!=0 -- CNST_NONAME
THEN (131072) ELSE 0 END
+ CASE WHEN (status & 1)!=0 -- CNST_NEW
THEN (1048576) ELSE 0 END
+ CASE WHEN (status & 1024)!=0 -- CNST_REPL
THEN (2097152) ELSE 0 END),
actions = convert(int, 4096),
error = convert(int, 0)
FROM sysobjects WHERE xtype i n (’C’, ’F’, ’PK’, ’UQ’, ’D’)
AND (status & 64) = 0
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
表二代玛:
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
ALTER VIEW syssegments (segment, name, status) AS
SELECT 0, ’system’ , 0 UNION
SE LECT 1, ’default’ , 1 UNION
SELECT 2, ’logsegment’ , 0
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
第三章功能模块设计
3.1三层结构
本系统采用3个逻辑层的设计模型,分别为表示层、业务逻辑层和数据访问层,这种模型使系统结构更清楚,分工更明确,有利于后期的维护和升级。
3.1.1表示层(common)
用户表示层为客户端提供应用程序的访问,在本系统中该层用的即是页面。
此层在本系统中的Web项目的形式实现。
3.1.2业务逻辑层(BLL)
业务逻辑层实现应用程序的业务功能。
本系统中该层用的即是BLL项目的形式实现。
3.1.3数据访问层(DA)
数据访问层为业务逻辑或表示层提供数据服务。
本系统中该层用的即是DA项目的形式实现。
这三层之间的相互关系可用图3-3-1来表示。
表示层业务逻辑层数据访问层数据库
图3-3-1
1、数据访问策略
数据访问策略是应用程序用来存储、检索和管理数据的方式。
本系统的系统数据访问策略旨在优化性能和可缩放性。
主要采用了以下两个策略。
1、数据访问层对数据库的访问基本上均采用存储过程的方式进行。
利用存储过程可以保持应用程序的执行效率并简化数据库,另外可以增加系统设计的灵活性,在数据库发生变化时,有时可以通过改变存储过程语句而无需改变程序代码即可实现。
该数据库访问策略有效利用了SQL Server 数据库系统对性能优化的特点。
2、将数据库资源保留最短的时间。
数据库资源稀有且昂贵,本系统所用的系统数据库访问层尽可能推迟分配数据库资源,并尽可能快地释放数据库资源。
并使用using 或try c atch finally 块对存储过程进行调用,此模式封装了对不受运行管理的资源的控制,可以尽可能快地释放数据库资源。
2、系统配置
本系统所用的系统配置主要是通过Web应用程序的Web.Config 配置文件实现的。
Web. Config 位于本系统的Webs项目的根目录中,它是XML格式的文件,可以使用任何标准文本编辑器或XML分析器编辑该文件,但不能使用Web浏览器远程访问该文件。
本系统中的Web.Config 配置文件中有3点要注意的。
1、保存数据库连接字符串
将数据库连接字符串保存在Web.Config配置文件中appSettings 节中,便于系统的各个页面进行调用。
同时,在系统重新部署时,只要修改此处的数据库连接字符串,.NET框架运行时会自动检测Web.Config 中的更改,不必重新启动IIS这些更改即可生效。
要在其他页面中引用数据库连接字符串需要先添加对System..Configuration 命名空间的引用,在System..Configuration 命名空间中含有ConfigurationSettings 类,它提供对指定配置小节中设置的访问,其公共属性ConfigurationSettions.AppSettings 属性可获取<appSettings>元素配置节中的设置,其读书到的值为String 类型。
2、系统错误重定向
在Web.Config 配置文件中,通过对<customErrors>节进行设置,可以自定义默认的出错页面。
此节点可设定如下的3种报错模式,默认为RomoteOnly 模式。
①关闭(Off)模式:一旦发生错误,把默认的报错页面显示给本地和远程用户。
②开启(On)模式:当报错模式属性被设为“开启”时, 把自定义的出错页面而不是其默认的系统报错页面显示给本地和远程用户。
③只有远程启动(RomoteOnly)模式:的报错页面只能被本地用户看到。
远程用户用的访问请求,将会显示自定义的出错页面。
“defaultRedirect” 属性的值定义了默认的自定义的错误页面,此外还可以根据不同的出错值,设定不同的出错页面。
在本系统中,通过上面的代码可设置打开自定义出错页面显示,如果发生404错误(找不到页面)时,将转向“error404.aspx” ,发生其他错误时,页面时,页面将转向“err orpa
ge.htm” 默认错误页面。
3、设置请求和响应编码
在Web.config 配置文件中,通过对<globalization>节设置本系统中的系统请求和响应编码默认为简体中文。
3.2登陆程序设计
登陆程序是人员管理系统运行后首先打开的界面。
在这个界面,用户必须输入预先设定好的用户名以及密码才能进入,这样有利于防止他人在没有授权的情况下进入系统,修改系统中的数据,对单位造成不必要的损失。
登陆窗口的界面如图3-3-2所示:
图3-3-2
该窗口中放置了2个文本框TextBox控件,分别显示“帐号”和“密码”。
在窗口的下方还放置1个“确认” 按钮控件。
private void btnlogin_Click(object sender, System.EventArgs e)
{
EmpDB AloginUsr=new EmpDB();
String strLoginID= username.Text .Trim ();
String strPassword =password.Text .Trim ();
string strReason;
string strUserID;
string strValid;
string[] NewLogin;
String[] strLoginflag =AloginUsr.Login (strLoginID,strPassword);
if(strLoginflag[0]=="usererror"||strLoginflag[0]=="pwderror"||strLoginfl ag[0]=="noacount")
{
strUserID = username.Text .Trim ();
strValid= "否";
strReason=strLoginflag[1];
NewLogin=new string []
{
strUserID,
DateTime.Now .ToString (),
strValid,
"",
erHostAddress .ToString (),
strReason
};
DbManagerLogininfo myclassfologin=new DbManagerLogininfo (); myclassfologin.insertLoginUser (NewLogin);
Response.Write("<script language=javascript>");
Response.Write("window.alert(’");
Response.Write(strReason);
Response.Write("’);");
Response.Write("</script>");
}
else
{
Response.Cookies["empint"].Value=username.Text;
Response.Cookies["empint"].Expires=DateTime.Now.AddDays(1);
strUserID=username.Text .Trim ();
strValid="是";
strReason="";
strReason=strLoginflag[1];
NewLogin=new string []
{
strUserID,
DateTime.Now .ToString (),
strValid,
"",
erHostAddress .ToString (),
strReason
};
DbManagerLogininfo myclassfologin=new DbManagerLogininfo (); myclassfologin.insertLoginUser (NewLogin);
Session["EmpID"]=Int32.Parse(strLoginflag[0]);
Session["username"]=username.Text;
string tt="qminoa = window.open(’"+Reques t.ApplicationPath+"/index.aspx" +"’"
+",’’,’toolbar=no,menubar=no,titlebar=yes,directories=no,resizable=yes,stat us=yes,fullscreen=no,top=0;left=0,width=900,height=700’);"; Response.Write("<script language=javascript>");
Response.Write(tt);
Response.Write("qminoa.moveTo(0,0);");
Response.Write("qminoa.resizeTo(screen.availWidth,screen.availHeight);"); Response.Write("window.opener=null;");
Response.Write("window.close();");
Response.Write("</script>");
}
}
该事件以用户输入的帐号和密码来连接数据库,并且提示用户帐号和密码不能为空,如果为空将不能进入系统。
当用户输入正确的帐号和密码后,将打开主窗口,并关闭当前的登陆窗口。
技术点总结:
在本系统中用户身份验证的方式是通过session方式实现的,这和以前ASP程序实现用户验证方式比较相近。
在中还提供了另外3种验证方法:Windows验证、Passp ort验证和Cookie验证。
3.3人事管理模块设计
3.3.1UML活动关系图
下面是进入人事管理模块时可使用的活动或选项。
在进入每个子模块时都进行权限判断,如果登录用户不具备该子模块的最低操作权限(即读取权限)时,提示越权信息,禁止进入该子模块。
当用户进入子模块时,根据用户权限信息开放相应功能,发现越权行为,给出越权警告。
活动关系图如3-3-3所示:
图3-3-3 UML活动关系图
3.3.2功能设计
1、机构信息
该模块面向企业或集团应用,能够添加企业或集团公司的各分支点部门和机构,但只有人力资源管理员相应权限才有权力添加或删改机构信息。
此子模块提供信息的基本数据库操作:添加、修改和删除。
2、部门信息
管理各分支机构的所属的部门信息。
包括各部门的负责人、电话号码、传真、地址等。
只有人力资源管理员可对部门列表进行浏览、新增、编辑、删除等操作,其他人员只能看到相应权限的栏目。
3、人员管理
包括员工的基本信息、个人信息、福利待遇、学历信息、履历信息、档案信息、合同信息;并提供简捷明了的按机构、部门、个人名字等条件进行检索、录入和修改。
4、人员照片
提供以员工照片的形式浏览员工的基本信息,可按机构、部门和单个员工查阅详细信息资料。
同时便于新员工、跨部门的员工相互间尽快认识和熟悉起来。
3.3.3 机构管理
1、机构管理页面BranchInf.aspx
本页面主要包括机构添加模块和机构列表,机构列表实现了机构的修改和删除功能。
● 机构添加模块主要由两个文本控件和验证控件组成。
<TABLE id="Table6" style="WIDTH: 100%; HEIGHT: 20px" cellSpacing="1"
cellPadding="1" border="0">
<TR>
<TD class="tttable" style="WIDTH: 69px">机构名称
</TD>
<TD style="WIDTH: 134px" noWrap> 、<asp:textbox id="txtName" runat=" server" CssClass="edline" Width="136px"></asp:textbox></TD>
<TD class="tttable" style="WIDTH: 4px">
<asp:requiredfieldvalidator id="valName" runat="server" CssClass="td" Con trolToValidate="txtName" ErrorMessage="[机构名称]必须输入!" Font-Size="X-Small">*</asp:requiredfieldvalidator></TD>
<TD class="tttable" style="WIDTH: 55px">机构简称
</TD>
<TD style="WIDTH: 53px" noWrap>
<asp:textbox id="txtSimCode" runat="server" CssClass="edline" Width="72 px"></asp:textbox></TD>
<TD noWrap> <asp:requiredfieldvalidator id="valSimCode" runat="server" CssClass="td" ControlToValidate="txtSimCode" ErrorMessage="[机构简称]必
须输入!" Font-Size="X-Small">*</asp:requiredfieldvalidator></TD> <TD no Wrap> <asp:linkbutton id="cmdAdd" runat="server" CssClass="td" Font-Siz e="X-Small"><img src="../img/add.gif" border="0" align="absmiddle">添加...</asp:linkbutton></TD> </TR> </TABLE>
● 机构列表由DataGrid 实现,数据源设置为BraTB,它由后台代码提供。
<asp:datagrid id=dgdBranch runat="server" Width="445px" DataSource=" <%# BraTB %>" DataKeyField="branchid" BorderWidth="1px" BackColor=" #F7F7F7" BorderColor="#F7F7F7" CssClass="table" BorderStyle="Solid" Aut oGenerateColumns="False" Font-Size="X-Small"> <SelectedItemStyle Back Color="Transparent"></SelectedItemStyle> <EditItemStyle ForeColor="Blac k" BackColor="Black"></EditItemStyle>
<AlternatingItemStyle BorderColor="White" BackColor="White"></Alternatin gItemStyle>
<ItemStyle CssClass="textcenter" BackColor="#DEDFDE"></ItemStyle>
<HeaderStyle CssClass="headcenter"></HeaderStyle> <FooterStyle CssCla ss="headcenter"></FooterStyle> <Columns>
<asp:BoundColumn DataField="BranchName" HeaderText="机构名称"></asp: BoundColumn>
<asp:BoundColumn DataField="SimpleCode" HeaderText="机构简称"></asp: BoundColumn>
<asp:TemplateColumn HeaderText="更新机构信息"> <ItemTemplate><asp:Li nkButton runat="server" Text="编辑" CommandName="Edit" CausesValidati on="false"></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton runat="server" Text="更新" CommandName="Update" Cau sesValidation="false"></asp:LinkButton>
<asp:LinkButton runat="server" Text="取消" CommandName="Cancel" Caus esValidation="false"></asp:LinkButton></EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="删除" ItemStyle-Width="10%">
<ItemTemplate>
<asp:ImageButton CausesValidation="False" id="Imagebutton2" runat="ser ver" ImageUrl="../img/delete.gif" CommandName="delete" AlternateText="删除此项机构"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
● 后台代码主要完成DataGrid 控件数据的绑定,以及机构的3个数据库基本操作;添加、修改和删除。
此页面继承系统Web基类PageBase,页面权限管理由基类直接提供,页面根据权限代码控制用户的所有操作。
如果用户对此模块不具备最低操作权限(即浏览权限),则禁止用户进入页面,转到登录页面;当用户进入模块后,用户的所有操作都要经过权限判断,不具有操作权限时,则给出提示信息,禁止用户使用。
具体的流程如图3-3-4所示:
图3-3-4 WEB 页面权限管理流程
● 继承PageBase 基类。
public class BranchSet : qminoa.Webs.PageBase
{
protected bel lblBranchID;
protected System.Web.UI.WebControls.ValidationSummary ValidationSumma ry1;
protected bel lblErr;
protected System.Web.UI.WebControls.DataGrid dgdBranch;
protected System.Web.UI.WebControls.LinkButton cmdAdd;
protected System.Web.UI.WebControls.RequiredFieldValidator valSimCode; protected System.Web.UI.WebControls.TextBox txtSimCode;
protected System.Web.UI.WebControls.RequiredFieldValidator valName; protected System.Web.UI.WebControls.TextBox txtName;
protected System.Web.UI.WebControls.ImageButton ImageButton1;
private void Page_Load(object sender, System.EventArgs e)
{
this.PageBegin("机构管理",true);
if(!Page.IsPostBack)
{
DataBind();
}
}
● 该属性以DataTable 格式返回所有机构的信息
public DataTable BraTB
{
get
{
return (new DepSystem()).GetBraTB();
}
}
● 事件绑定。
private void InitializeComponent()
{
this.cmdAdd.Click += new System.EventHandler(this.cmdAdd_Click);
this.dgdBranch.CancelCommand += new System.Web.UI.WebControls.Data GridCommandEventHandler(this.dgdBranch_CancelCommand);
this.dgdBranch.EditCommand += new System.Web.UI.WebControls.DataGrid CommandEventHandler(this.dgdBranch_EditCommand);
this.dgdBranch.UpdateCommand += new System.Web.UI.WebControls.Data GridCommandEventHandler(this.dgdBranch_UpdateCommand);
this.dgdBranch.DeleteCommand += new System.Web.UI.WebControls.DataG ridCommandEventHandler(this.dgdBranch_DeleteCommand);
this.dgdBranch.ItemDataBound += new System.Web.UI.WebControls.DataGr idItemEventHandler(this.dgdBranch_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);
}
● 技术难点
1、禁用检验
在包含验证控件的表单中,执行Web服务控件时,总是需要通过客户端检验脚本的验证后提交到服务器端。
不过在包含验证控件的表单中有些Web控件的表单中有些Web控件执行时,不需要验证控件执行验证。
在下面的示例中,表单包含一个提交按钮和一个取消按钮。
单击提交按钮时,执行验证控件的检验,通过后提交到服务器端;单击取肖按钮时,不执行验证控件的检验,而直接跳转到另一个页面。
<script runat="server" language="c#">
void btnSubmit_Click(sender,System.EventArgs e)
{
if(IsValid)
Response.Redirect("Thank You.aspx");
}
void btnCancel_Click(object sender,System.EventArgs e)
{
Response.Redirect("Cancel.aspx");
}
</script>
<html>
<head><title></title></head>
<body>
<form runat="server">
Enter your first name;
<br>
<asp:TextBox id="txtFirstName" Runat="Server"/>
<asp:RequiredFieldValidator ControlToValidate="txtFirsName" Text="Require d!" runat="server"/>
<asp:Button id="btnSubmit" Text="btnSubmit_Click" runat="server"/>
<asp:Button id="btnCancel" Text="Cancel" OnClick="btnCancel_Click" Caus esValidation="false" runat="server"/>
</form>
</body>
</html>
● DataGrid 控件数据绑定
数据绑定是指在运行时将值动态地赋给控件的属性的过程。
例如,可以使用数据绑定将控件的属性绑定到一个数据源。
机构列表使用DataGrid控件,就是使用了数据绑定技术,首先将所有机构的信息读到DataTable中,然后设置DataGrid 控件的DataSource属性,指向包含机构信息的绑定时也非常相似,正确使用数据绑定技术,会使得开发变得非常轻松。
3.3.4 部门管理
1、本页面主要包括部门列表,实现了部门的删除功能。
查看部门详细信息、编辑部门信息和添加部门信息的功能将跳转到其他页面实现。
● 新增部门跳转到其他页面
<asp:HyperLink id="HyperLink2" runat="server" NavigateUrl="./DepNew.as px" Font-Size="X-Small"><img src="../img/add.gif" border="0" align="absb ottom">新增</asp:HyperLink>
● 部门列表DataGrid控件的数据源设置为DepTB,分页,每页8条记录。
每条记录的“部门名称”列设置DataNavigateUrlFormatString 属性,使其指向部门详细信息页面。
<ASP:DATAGRID id=dgdDep runat="server" DataKeyField="DepID" Font-Na mes="Verdana" BorderWidth="1px" BackColor="#F7F7F7" BorderColor="#F 7F7F7" CssClass="table" BorderStyle="Solid" width="717px" AutoGenerateC olumns="False" HeaderStyle-font-weight="fold" HeaderStyle-BackColor="#d 8c8a8" Font-Name="Verdana" CellPadding="3" Height="81px" DataSource= "<%# DepTB %>" AllowPaging="True" PageSize="8" >
<SelectedItemStyle BackColor="Transparent"></SelectedItemStyle>
<EditItemStyle ForeColor="Black" BackColor="Black"></EditItemStyle>
<AlternatingItemStyle BorderColor="White" BackColor="White"></Alternatin gItemStyle>
<ItemStyle CssClass="textcenter" BackColor="#DEDFDE"></ItemStyle>
<HeaderStyle CssClass="headcenter"></HeaderStyle>
<FooterStyle CssClass="headcenter"></FooterStyle>
<FooterStyle Font-Size="X-Small"></FooterStyle>
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="DepID" DataNavigateUrlForm atString="./DepUp.aspx?DepID={0}" DataTextField="DepName" HeaderText ="部门名称">
<ItemStyle Wrap="False"></ItemStyle>
</asp:HyperLinkColumn> <asp:BoundColumn DataField="simplecode" Head erText="机构"> <ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn> <asp:BoundColumn DataField="manager" HeaderText ="负责人">
<ItemStyle Wrap="False"></ItemStyle> </asp:BoundColumn> <asp:Bound Column DataField="tel1" HeaderText="电话号码1"> <ItemStyle Wrap="False "></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="tel2" HeaderText="电话号码2">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="fax" HeaderText="传真">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="删除" ItemStyle-Width="10%">
<ItemTemplate>
<asp:ImageButton CausesValidation="False" id="Imagebutton2" runat="ser ver" ImageUrl="../img/delete.gif" CommandName="delete" AlternateText="删除当前部门"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Mode="NumericPages"></PagerStyle>
</ASP:DATAGRID>
2、DepInf.aspx 后台代码
后台代码主要完成DataGrid控件数据的绑定,以及部门的删除操作。
此页面继承系统We b基类PageBase,页面权限管理由基类直接提供,页面载入时,提供给基类页面模块名称,基类根据模块名称返回权限代码,页面概据权限代码控制用户的所有操作。
当用户具备删除部门的权限时,设置“新增”按钮的NavigateUrl属性指向新增页面。
当用户具备部门信息浏览权限时,可通过单击每条记录的“部门名称”列查看该部门的详细信息。