第三讲 正式进入asp.net
第二章 ASP.NET中的对象
回顾 Web应用程序,脚本,Web窗体
目标 asp.net基本知识,
.aspx页工序流程,
page_load事件,
IsPostBack属性,
Request和Response对象
开发环境介绍,vs2003,.aspx文件和.cs文件代码分离
.aspx中代码介绍:<%@ Page Language="c#"(语言) Codebehind="*.cs"(代码) AutoEventWireup="false"(是否自动匹配) Inherits=""(类) %>。运行时会自动编译(不过VS2005中貌似不会),当建立了多个文件是需要设置首页,运行的时候进入首页,但是vs2005中运行时是运行当前页。
控件:两种,HTML和Web控件;web(<asp:控件名 属性../>)是在服务器端运行的,html加上runat="server"也在服务器端运行
事件处理程序:双击控件在cs文件中添加事件。
_VIEWSTATE 信息存储问题;表单中的信息储存在隐藏控件_VIEWSTATE中
Page_Load事件:每次加载都执行,用IsPostBack可以设置只在第一次访问是执行,第一次加载的时候值为false
ps:vs2005中有Page_Init事件,第一次加载是执行
举例子:
第四讲
例子中 关闭按钮的实现,由于单击是在服务器端执行,无法关闭客户端;因此需要使用脚本,在脚本中加入onClick="window.close();" 也可以在page_load事件中加入this.btnClose.Attributes.Add("onClick","window.close();");
asp.net工序流程:请求->执行->回发->更改->....循环
ASP.NET对象:Request 接受 C->S 常用方法:Redirect Write Response发送 S->C Form QueryString
表单:以<Form>开头 </Form>结束asp.net中只允许一个Form在S端运行。Form的属性,action处理页面,默认为自己;method发送信息方法,有get和post两种。post方法时Response接收时可以用:Response["txtUserName"].ToString(); 或者Response.Form.Get("txtUserName").ToString(); get方法时Response接收时要用:Response.QueryString["txtUserName"].ToString(); 且get方法时会在浏览器地址栏中明码显示;一般做新闻的时候会用到。Request的Redirect方法:重定向到指定页面。另外:vs中的排版 PageLayout,两种方法,流式和决定定位,不过vs2005中好像没有。
第五讲 这一讲是实验;主要做3、4讲里面的例题;实验练习很重要;多练~
做实验中发现vs2005都是相对定位的;没有页面属性改为绝对定位,
百度了个,找到答案:工具-->选项-->HTML设计器-->CSS定位-->定位选项-->将使用工具箱、粘贴或拖放操作添加的控件定位更改为以下设置(选中)-->绝对定位 "
同时实验中第一次用到数据库连接:
string userName = Request.Form.Get("userName").ToString();
string userPwd = Request["userPwd"].ToString();
SqlConnection con = new SqlConnection("server=.;database=login;user=sa;pwd=sa;");
con.Open();
SqlCommand cmd = new SqlCommand("select count(*) from login where userName='" + userName + "' and userPwd='" + userPwd + "'",con);
int count = Convert.ToInt32(cmd.ExecuteScalar());
if (count > 0)
{
Response.Redirect("main.aspx");
}
else
{
Response.Redirect("loginFail.htm");
}
粗心的我居然把Sqlcommand语句中的from写成了form,害我浪费了大把时间~