学校开的课,没怎么深入,跟着学了点常用的,整理下以备用
其实都差不多….
母版页
母版页也就是模板页 大雾:),就是一个模板,网站的很多页面有很多地方都是相同的,尤其是后台管理系统,我们不可能每次都copy一份代码,所以就有了母版页,采用母版页的页面保证只有在母版页允许自定义的地方才能写前台代码,母版页中会包含下面这样的一个标签:
1 | <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> |
Session全局变量
网页间的传值是个问题,ASP中不能和winform那样传值了,一般是用Session,我也就会这一种了….
创建方法右键–添加新项–全局应用程序类,默认是个名为Global.asax
的文件
1 | <%@ Application Language="C#" %> |
在代码中可以直接用Session["uname"]
来进行获取值
页面跳转以及IsPostBack
页面跳转没什么特别可说的,就一行代码:
1 | Response.Redirect("./Admin/Default.aspx"); |
可以使用相对路径也可以使用绝对路径
然后就是ASP中一个比较大的坑,我们可以看到ASP官方的控件中都有个属性叫runat="server"
,可以理解为当触发某个条件时比如按钮的点击事件,就会和服务器进行一次交流,不说性能方面的问题,还有一个很大的问题就是会刷新整个页面,也就是说会把后台代码再执行一遍,很多时候就会把用户设置、输入的内容给重置了….
所以我们一般都会写这样的代码:
1 | protected void Page_Load(object sender, EventArgs e) |
连接数据库
稍微学过点C#的这里应该比较熟悉了,都差不多
1 | private static SqlConnection getConn() |
就是获取的Web.config中的配置,数据库连接字符串在这里面,部署到服务器后是不允许下载这个文件的
1 | <configuration> |
GridView控件
对于这个控件确实是非常好用的,它可以直接用鼠标设置,也可以用代码,一般是要进行修改列名为中文的,可读性比较好,在编辑列选项中添加BoundField,记得进行和数据表中的字段进行绑定,同时可以添加一些编辑、更新、删除等操作,如果要用这些功能一定记得加ISPostBack判断
如果要自定义加按钮什么的,可以添加个 TemplateField里面再套个ItemTemplate然后把控件装进去
还有一点,如果加了单选框之类的控件默认改变是不会自动上传服务器的,需要手动加个AutoPostBack="true"
属性,但是我们又不希望每点一个就和服务器通讯次,为了减轻压力以及更好的用户体验,可以考虑把GridView外面套一个updatepanel控件,这样应该会进行批量更新….
updatepanel标签需要和scriptmanager配套使用,我没仔细研究过,我当时只是为了解决让它不频繁的触发刷新
不要忘了在控件的属性中设置对应的事件
下面的两个例子把上面的所有功能都用到了,应该….
1 | <asp:scriptmanager id="ScriptManager1" runat="server"> |
然后是如果使用了编辑、删除、更新之类的,还是要记得加相应的事件
1 | private void BindData() |
Repeater控件
默认有五种模板:
- ItemTemplate : 对每一个数据项进行格式设置
- AlternatingItemTemplate : 对交替数据项进行格式设置 ,显示2、4、6条
- SeparatorTemplate : 对分隔符进行格式设置
- HeaderTemplate : 对页眉进行格式设置
- FooterTemplate : 对页脚进行格式设置
ItemTemplate标签内的内容会重复,和数据表的行数一致
1 | <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand"> |
上传文件到服务器
比如你如果想导入Excel也好还是设置头像也好,文件是必须先要上传到服务器才能操作的,这里使用FileUpload控件来上传
1 | private string Upload(FileUpload fuload) |
读取Excel文件
我基本也是从网上找的实例代码,需要安装相应的支持库才行,区分32与64位系统,可以在项目中设置IIS以64位运行
1 | private static OleDbConnection getOleConn(string fileName) |
Excel批量快速导入
主要使用ASP中一个叫SqlBulkCopy的类,想要导入最快要保证内存中的DT和数据库的表结构相同,倒是没必要字段也相同
1 | public static void SQLBulkCopy(DataTable dt,string dtName) |
补充
datatable控件是个很好用的控件,包括类,对于DT的顺序问题,是有个排序方法的,比如可以这样
1 | DataTable dt = getDT(); |
对于判断一个字符串是不是为空,又很多写法都可以实现,据说下面的这种方式比较高效:strTest.Length == 0
评论框加载失败,无法访问 Disqus
你可能需要魔法上网~~