1.resource:
添加Resources File....填写Name,Value,Comment --名称,值,注释如 CONFIRM_DELETE,Are you sure to delete the selected data?,删除提醒
使用: ShowMessage(Resource.CONFIRM_DELETE);
2.使用母版页.
(1)添加Master Page.... 自动生成了
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!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>Untitled Page</title>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
ContentPlaceHolder标签内为子页的内容,在其他地方写代码即可.
(2)再添加页面,选中Select master page,选择对应的母版页,会自动生成
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="page1.aspx.cs" Inherits="page1" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
</asp:Content>
(3)在Content1 和 Content2 内的代码将嵌套在MasterPage 对应的head,ContentPlaceHolder1标签中.
子页中调用母版页控件Label lblTitle = Master.FindControl("lblTitle") as Label;
4.用户控件的使用:添加Web User Control,可在母版页中添加<%@ Register Src="UserControl/BackTree.ascx" TagName="BackTree" TagPrefix="uc2" %>,当做控件使用即可
5.使用现成的动态链接库(略),直接添加dll即可.
6。Global.asax文件使用Global Application Class,,在Application_Start,Application_End 编写程序一启动所进行的工作,如不间断扫描等
7。线程:
System.Threading.Thread sisThread = null;
sisThread = new System.Threading.Thread(ThreadFunction);
sisThread.Start();
----
private void ThreadFunction()
{//线程对应的方法
System.Threading.Thread.Sleep(intTime);//休眠一段时间}
8。windowsService..添加Windows Service ,添加private System.Timers.Timer timerMain;设置
this.timerMain.Enabled = true;
this.timerMain.Interval = 10000;
this.timerMain.Elapsed += new System.Timers.ElapsedEventHandler(this.timerMain_Elapsed);
在设定的间隔时间内执行timerMain_Elapsed方法..(安装,调试略)
9。数据库中表权限部分.--用户表,角色表,用户角色关系表,画面表,画面角色关系表,功能表,功能角色关系表..
触发器的使用,如当插入一条数据时,记录日志(可以在程序中也可使用触发器)
ALTER TRIGGER [TR_TB_PRODUCTINFORMATION_I]
ON [dbo].[TB_PRODUCTINFORMATION]
FOR INSERT
AS
DECLARE @SERIAL_NO NVARCHAR(50) --序列号
DECLARE @PRODUCT_CODE NVARCHAR(50) --产品代码
DECLARE @SHIP_DATE DATETIME --SHIP_DATE
DECLARE @PRODUCT_NAME NVARCHAR(50) --产品名称
DECLARE @REF_FILE NVARCHAR(50) --所属文件
DECLARE @COMMENTS NVARCHAR(100) --备注
DECLARE @CREATEDBY NVARCHAR(20) -- 创建用户
DECLARE @CREATEDON DATETIME -- 创建日期
DECLARE PRODCUT_CURSOR CURSOR FOR -- 创建游标
SELECT [SERIAL_NO],
[PRODUCT_CODE],
[SHIP_DATE],
[PRODUCT_NAME],
[REF_FILE],
[COMMENTS],
[CREATED_BY],
[CREATED_ON]
FROM [INSERTED]
FOR READ ONLY
BEGIN
SET NOCOUNT ON;
OPEN PRODCUT_CURSOR -- 打开游标
FETCH NEXT FROM PRODCUT_CURSOR INTO @SERIAL_NO, @PRODUCT_CODE, @SHIP_DATE, @PRODUCT_NAME, @REF_FILE,
@COMMENTS, @CREATEDBY, @CREATEDON
WHILE @@FETCH_STATUS =0
BEGIN
IF @REF_FILE IS NULL
BEGIN
IF @CREATEDBY <> 'SYSTEM'
BEGIN
INSERT INTO [dbo].[TP_LOG_MODIFICATION]
([OPERATION_MODE]
,[SERIAL_NO]
,[PRODUCT_CODE]
,[SHIP_DATE]
,[PRODUCT_NAME]
,[COLUMN_NAME]
,[NEW_VALUE]
,[OLD_VALUE]
,[REF_FILE]
,[COMMENTS]
,[CREATED_BY]
,[CREATED_ON]
,[MODIFY_BY]
,[MODIFY_ON]
,[AVAILABLE])
VALUES
('INSERT'
,@SERIAL_NO
,@PRODUCT_CODE
,@SHIP_DATE
,@PRODUCT_NAME
,NULL
,NULL
,NULL
,@REF_FILE
,@COMMENTS
,@CREATEDBY
,@CREATEDON
,NULL
,NULL
,'Y')
END
END
FETCH NEXT FROM PRODCUT_CURSOR INTO @SERIAL_NO, @PRODUCT_CODE, @SHIP_DATE, @PRODUCT_NAME, @REF_FILE,
@COMMENTS, @CREATEDBY, @CREATEDON
END
CLOSE PRODCUT_CURSOR -- 关闭游标
DEALLOCATE PRODCUT_CURSOR -- 释放游标
END
10。自动填充,当输入文字时,模糊查询..再windows application 时,用的是panel 上放gridview...网页中用js(ajax??)实现,添加div ,table(单独做一篇说)
11。邮件发送
12。ftp 文件上传下载
13。加密
14。记录日志