ASP.NET 学习笔记
1、ASP.NET 服务器控件是可被服务器理解的标签
有三种类型的服务器控件(所有服务器控件必须出现在 <form> 标签内,同时 <form> 标签必须包含 runat="server" 属性。):
- HTML 服务器控件 - 传统的 HTML 标签(向 HTML 元素添加 runat="server" 属性。如:
<a id="link1" runat="server">Test!</a>
) - Web 服务器控件 - 新的 ASP.NET 标签 (没有必要映射任何已存在的 HTML 元素,它们代表更复杂的元素。如:
<asp:Button id="button1" Text="Click me!" runat="server" OnClick="submit"/>
) - Validation 服务器控件 - 用于输入验证
2、IsPostBack
判断页面是首次加载的,还是数据回发(有get或者post请求过的)后的页面。一些按钮提交事件会触发页面重载,此时对于一些数据绑定和初始化的动作会被反复执行,需要使用此属性来屏蔽此种情况!
一个页面第一次显示的时候IsPostBack = false,然后在这个页面上点击按钮或其他东西提交的时候,IsPostBack = true。
常用:if(!IsPostBack) InitialData();
3、ViewState
当 Classic ASP 中的表单被提交时,所有的表单值都会被清空,当提交了一张带有大量信息的表单,而服务器返回了一个错误。不得不返回表单,然后更正其中的信息。点击后退按钮,所有的表单值都被清空了,将不得不重新开始所有的一切。
当ASP .NET 中的表单被提交时,表单会随所有表单值一同重新出现,因为ViewState 会在页面被提交到服务器时指示其状态,ASP .NET 维持了 ViewState。维持 ViewState 是 ASP.NET Web 表单的默认设置。如果不希望维持 ViewState,需在 .aspx 页面的顶部包含指令: <%@ Page EnableViewState="false" %>,或为任意控件添加属性:EnableViewState="false"。
4、常用控件
- Label 控件用于在页面上显示文本。该文本是可编程的。
- TextBox 控件用于创建用户可输入文本的文本框。
- Button 控件用于显示按钮。
- Image 控件用于显示图像。
- Repeater 控件用于显示重复的项目列表,这些项目被限制在该控件。Repeater 控件可被绑定到数据库表、XML 文件或者其他项目列表。
5、数据绑定
- ADO.NET读取数据库资料到资料表
<%@Import Namespace="System.Data"%> <%@Import Namespace="System.Data.SqlClient"%> string strSql = @"select * from tb_test"; string strConn = "server=localhost;database=dbtest;user=sa;pwd=123456"; SqlConnection myConn = new SqlConnection(strConn); SqlDataAdapter myDataAdapter = new SqlDataAdapter(strSql,myConn); DataSet ds = new DataSet(); myDataAdapter.Fill(ds); DataTable dtData = ds.Tables[0];
- 将资料表绑定到数据显示控件
Repeater1.DataSource=dtData;
Repeater1.DataBind();
- 设定数据显示样式(<HeaderTemplate> 元素中的内容在输出中仅出现一次,而 <ItemTemplate> 元素的内容会对应 DataSet 中的 "record" 重复出现,最后,<FooterTemplate> 的内容在输出中仅出现一次)
<html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="1" width="100%"> <tr> <th>Title</th> <th>Artist</th> <th>Country</th> <th>Company</th> <th>Price</th> <th>Year</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>
6、母版页
Master Page 使您有能力为 web 应用程序中的所有页面(或页面组)创建一致的外观和行为,为其他页面提供了模版,带有共享的布局和功能。Master Page 为内容定义了可被内容页面覆盖的占位符。而输出结果就是 Master Page 和内容页面的组合。
- master1.master
<%@ Master %> <html> <body> <h1>Standard Header For All Pages</h1> <asp:ContentPlaceHolder id="CPH1" runat="server"> </asp:ContentPlaceHolder> </body> </html>
- page1.aspx
<%@ Page MasterPageFile="master1.master" %> <asp:Content ContentPlaceHolderId="CPH1" runat="server"> <h2>Individual Content</h2> <p>Paragrap 1</p> <p>Paragrap 2</p> </asp:Content>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY