20150525
一、IIS
1.IIS是个什么东西?——Web服务器软件,安装在服务器上。接收请求,响应请求。类似于饭店里的服务员。
2.会安装IIS。控制面版--程序--打开关闭Windows功能。
3.进行基本设计:应用程序池,主目标,虚拟目录。
4.设置默认文档。
二、建立.NET的Web项目。
位置:Http--使用IIS建立和运行项目。 文件系统--使用VS自带的IIS Express建立和运行项目。
App_Code系统文件夹。所有的.cs单独的类文件要放在App_Code文件夹中。(放置DA和Data文件,数据库内表的CS文件代码)
Web.Config配置文件。程序配置内容放在里面,通常用来放链接字符串。
页面文件:.aspx和.aspx.cs两部分,在编译或运行的时候会把二者自动合成一个类。
案例:
1.插入数据:使用文件框、按钮插入数据。
2.显示数据:在HTML代码中嵌入C#代码。
<% %> 是个不需要输入的代码段。两个%之间书写要实现的代码
<%=%> 是个需要输入的表达式,等号后边书写这个位置要出现的值得代码
说明:在aspx.cs中导入命名空间,使用using XXXXX导入;。在aspx中导入命名空间使用<%@ Import Namespace="XXXXX" %>导入。
三、几个Web下常用的五大对象。
1.Request -- 获取请求
string s = Reqeust["key"]; //?带过来的“名=值”对或者通过表单元素的name值来获取表单元素value值,此时的key实在网页上边地址栏中的某项数据,s即是获取此时key的值
Request["地址栏中?后面名值对的名/表单元素的name名"]
2.Response -- 进行响应
Response.Write("字符串"); //服务器的程序代码向页面输入一串字符。 相当于商店老板直接把东西卖给你。
Response.Redirect("重定向页面"); 相当于商店老师介绍另一个商店让你去买。
这个是返回此时双引号内定向的页面,实现那个页面的刷新效果
20150526
所有的Web程序都是无状态的。
原因:它们使用的Http传输协议本身就是无状态的协议。
表现:每个返回到客户的页面,都与之前或之后的页面不相关,无法访问之前页面的数据,或为之后页面送数据。
解决:在服务端或客户端通过使用几个对象来专门存储相关状态的数据。
存储在服务端的状态对象
Session:
每个独立的浏览器会创建一个独立的Session ,不是一台电脑一个Session。
Session存储的数据,在当前会话中共享。
Session在20分钟之内,如果没有会话操作,则Session会自动释放。
语法:
1.用Session存值:Session["key名"] = 值; 值,不只是个字符串,可以是对象。
2.从Session取值:类型 变量名 = (强制转换的类型名)Session["key名"]
3.判断Session中是否存有某个值
if(Session[“key名”] == null)
{
}
4.释放Session
释放某个Session:Session["key名"] = null;
释放会话中的所有的Session:Session.Clear();
自动释放:20分钟
案例:
1.登录:防止绕过登录界面。
2.登录:把用户名记好。在每个界面上显示“欢迎您:用户名”
Application
所有会话共享一个Application空间,任何一个人改变Applciation中的内容,其它人都会发现被改变了。
Application中的数据不会自动释放。
1.用Application存值:Application["key名"] = 值; 值,不只是个字符串,可以是对象。
2.从Application取值:类型 变量名 = (强制转换的类型名)Application["key名"]
3.判断Application中是否存有某个值
if(Application[“key名”] == null)
{
}
4.释放Application:Application["key名"] = null;
存储在客户端的状态对象:
Cookie
保存在客户端内存或硬盘般上的。(在电脑属性:Internter选项--常规---下边里边可找到“临时文件、。。。Cookie”)
临时Cookie是存在浏览器内存中的。持久Cookie是存在硬盘上浏览器相关的Cookie目录中的。
设置Cookie
Response.Cookies["key名"].Expires = 过期时间。
例子;Response.Cookies["temp"].Expires = DateTime.Now.AddDays(7);
Response.Cookies["key名"].Value = 值。
读取Cookie
string s = Request.Cookies["key名"].ToString();
会写入临时Cookie,持久Cookie;会读取Cookie;会删除Cookie。
//删除Cookie——无法删除Cookie,一般来说我们是把Cookie设为过期,就会自动被删除。
Response.Cookies["temp"].Expires = DateTime.Now.AddDays(-1);
20150527
一、Label控件:标签——呈显出来的时候会变成span标签
Text - 标签上文字
BackColor-背景色
ForeColor-前景色
Font
Bold-加粗
Italic-倾斜
UnderLine-下划线 OverLine StrikeOut
Name - 字体名
Size - 字体的大小
BorderColor-边框颜色
BorderWidth-边框粗细
BorderStyle - 边框样式
Height - 高
Width - 宽
Enabled-是否可用
Visible-是否可见
ToolTip-鼠标指上去的提示信息
CssClass - 样式表的class选择器
调用外联样式表<link href="CSS/StyleSheet.css" rel="stylesheet" />-------------直接将右边的样式表拖进写好的源文件中就行
二、Literal:也是一个标签,这个标签不会在两端加上span
三、TextBox:文本框: HiddenFiled:隐藏域。Value:textbox内的值
拥有Label所有的属性
TextMode——文本框的呈现模式;SingleLine--单行文本框;MultiLine-多行文本框;Password-密码框
ReadOnly - 只读
MaxLength - 最大输入的字符数。只有TextMode是SingleLine和Password的时候起作用,在MultiLine的时候不起作用。
Columns:宽度,以字母个数为单位
Rows:高度,以行数为单位。只有TextMode是MultiLine的时候才起作用。在单行文本或多行文本下是不起作用的。
四、Button 按钮: LinkButton 超链接按钮 ImageButton 图片按钮(ImageUrl属性)
拥有Label标签的所有属性
OnClientClick:当按钮被点击的时候,要执行的客户端的JS代码。它的触发要在按钮的C#事件代码之前。
★★★★★★★★★★★★★★★JS的调用技巧★★★★★★★★★★★★★★★★★★★
如何给文本框加JS
法一:在HTML视图找到相关元素,直接嵌入相关的事件和JS代码。
例如:
设计时候:
用户名:<asp:TextBox ID="TextBox1" onfocus="doFocus(this)" runat="server" ForeColor="#999999">(必填)</asp:TextBox>
运行起来:
用户名:<input name="TextBox1" type="text" value="(必填)" id="TextBox1" onfocus="doFocus(this)" style="color:#999999;" />
法二:在aspx.cs文件的Page_Load方法中,使用Attributes属性加入JS
例如:
C#代码:
protected void Page_Load(object sender, EventArgs e)
{
TextBox2.Attributes.Add("onfocus","doFocus(this)");
}
运行起来:
密码:<input name="TextBox2" type="text" value="(必填)" id="TextBox2" onfocus="doFocus(this)" style="color:#999999;" />
*******************************************************************************************
五、HyperLink:超链接
拥有Label的所有属性:
Text -
NavigateUrl - 超链接的导航地址。相当于href
Target - 打开位置
ImageUrl - 图片超链接的图片地址。
六、Image:图像
拥有Label的所有属性:
ImageUrl - 图片超链接的图片地址。
以上讲得都是简单控件:
复合控件
一、下拉列表:DropDownList
拥有Label的所有的属性:
会做三件事情:
(一)把内容填进去
法一:逐项添加
private void FillNation1()
{
//取出数据来
List<NationData> list = new NationDA().Select();
//想法扔进去
foreach (NationData data in list)
{
ListItem li = new ListItem(data.Name, data.Code);
DropDownList1.Items.Add(li);
}
}
法二:数据绑定
private void FillNation2()
{
//取出数据来
List<NationData> list = new NationDA().Select();
//想法扔进去
DropDownList1.DataSource = list;
DropDownList1.DataTextField = "Name";
DropDownList1.DataValueField = "Code";
DropDownList1.DataBind(); //最终执行绑定填充,不要漏掉
}
技巧:如何给下拉列表加上“请选择”的功能
1.事先在数据源上加下“请选择”的数据项,在绑定的时候自然会绑定上。
2.事先在下拉列表中设置静态的"请选择"列表项。然后再绑定或添加数据的时候在后面添加上。
如果采用数据绑定模式,默认情况下会把原有的项冲掉。需要设置AppendDataBoundItems属性。
3.所有的项都绑定或填加到下拉列表后,再写代码加上”请选择“的功能。
在取出数据以后:
//NationData temp = new NationData();
//temp.Code="-1";
//temp.Name = "--请选择--";
//list.Insert(0,temp);
后边才是将数据仍在dropdownlist中
或者:
在dropdownlist 的属性中找到items添加一个项,text设为”--请选择--”、value设为”-1”
(二)把选中的值取出来
每次点击按钮时候,都是先执行PageLoad代码,再执行Button的Click代码。 原因?????
if(!IsPostBack)
{
防止每点提交页面,都会执行这里面的代码。
这里面的代码,只有页面初次加载的时候才被执行。点击按钮提交的时候,不会被执行到。
以后记着:在Page_Load事件中99%的情况下需要写这段判断
}
SelectedItem
SelectedValue
SelectedIndex
//Label1.Text = DropDownList1.SelectedItem.Text + DropDownList1.SelectedItem.Value;
//Label1.Text = DropDownList1.SelectedValue;
int index = DropDownList1.SelectedIndex;
Label1.Text = DropDownList1.Items[index].Text + DropDownList1.Items[index].Value;
(三)设定某项为选中项
给DropDownList的两个属性赋值:
SelectedIndex = 要选中的索引号
SelectedValue = 要选中项的值
属性:
Items - ListItem的集合
Add()
Clear()
Insert()
Count
Remove()
RemoveAt()
DataSource
DataTextField
DataValueField
AppendDataBoundItem
SelectedIndex
SelectedItem
SelectedValue
20150528
Repeater---(工具箱--数据选项卡)
Repeater获取数据库中表内的数据:
private void Fillinfo()
{
List<InfoData> list = new InfoDA().Select();
Repeater1.DataSource = list;
Repeater1.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Fillinfo();
}
}
RadioButtonList
拥有DropDownList所有的属性和功能。
它呈现出来的是单选按钮列表。
属性:
RepeatDirection:布局的方向
RepeatLayout:用表格布局还是流式布局
RepeatColumns:一行显示几个
CheckBoxList
拥有RadioButton所有的属性和功能。
呈现出来的是复选框。
技巧:
1.如何获取选中的多个项?
//获取复选框的选中值。
//思路:遍历复选框列表中的每个项,判断每个项的选中情况。
foreach (ListItem li in CheckBoxList1.Items)
{
if (li.Selected)
{
Label2.Text += li.Value + ",";
}
}
2.如何设置某几个项同时选中?
//设置文本框中指定的项(用 | 隔开的每一项)被选中
//思路:从文本框中解析出要选中的项的value值,然后再遍历每一项,判断是否是文本框中指定的,是的话就设为选中,不是就设为不选中。
CheckBoxList1.SelectedIndex = -1;
string s = TextBox1.Text;
string[] ss = s.Split('|'); //解析出要选中的value值
foreach (ListItem li in CheckBoxList1.Items)
{
if (ss.Contains(li.Value))
{
li.Selected = true;
continue;
}
}
ListBox:列表框
拥有DropDownList控件的所有属性。
SelectionMode - Single,Multiple
如果是单选的话,照着下拉列表来做。
如果是多选的话,照着CheckBoxList来做。
Repeater
Repeater是使用模板来设计界面的。它有五个模板:HeaderTemplate,FooterTemplate,ItemTemplate,AlternatingItemTemplate,SeperatorTempate
简单的数据显示思路:
1.在HTML界面中使用模板来设计展显的界面。
2.在C#界面中,查询数据,绑定显示。
步骤:
1.把Repeater拖到界面上。
做界面
2.使用DW做好界面。
3.把DW做好界面,拆开贴到Repeater不同的模板上去。
4.使用<%# Eval("列名/属性名")%>
做代码:
5.在C#代码中查询数据
6.把查询出来的数据,绑定到Repeater中显示。
用C#代码控制界面上显示:
1.在C#代码写函数。空参,返回字符串,public
2.在HTML的Repeater模板中,调用上面的方法。
!IsPostBack:获取一个值,该值指示页是第一次呈现或为了响应回发而加载
****.DateBind();-------控件及其所有子键绑定到指定数据源
SelectedValue:获取列表控件中指定项的值、选择列表控件中包含指定值的项
SelectedIndex:获取或设置列表中选定项的最低序号索引