C#--Web控件简介

20150525

 

一、IIS

1.IIS是个什么东西?——Web服务器软件,安装在服务器上。接收请求,响应请求。类似于饭店里的服务员。

2.会安装IIS。控制面版--程序--打开关闭Windows功能。

3.进行基本设计:应用程序池,主目标,虚拟目录。

4.设置默认文档。

 

二、建立.NETWeb项目。

位置:Http--使用IIS建立和运行项目。 文件系统--使用VS自带的IIS Express建立和运行项目。

App_Code系统文件夹。所有的.cs单独的类文件要放在App_Code文件夹中。(放置DAData文件,数据库内表的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存储的数据,在当前会话中共享。

Session20分钟之内,如果没有会话操作,则Session会自动释放。

语法:

1.Session存值:Session["key"] = ;      值,不只是个字符串,可以是对象。

2.Session取值:类型 变量名 = (强制转换的类型名)Session["key"]

3.判断Session中是否存有某个值

if(Session[key名”] == null)

{

 

}

4.释放Session

释放某个SessionSession["key"] = null;

释放会话中的所有的SessionSession.Clear();

自动释放:20分钟 

 

案例:

1.登录:防止绕过登录界面。

2.登录:把用户名记好。在每个界面上显示“欢迎您:用户名”

 

Application

所有会话共享一个Application空间,任何一个人改变Applciation中的内容,其它人都会发现被改变了。

Application中的数据不会自动释放。

1.Application存值:Application["key"] = ;      值,不只是个字符串,可以是对象。

2.Application取值:类型 变量名 = (强制转换的类型名)Application["key"]

3.判断Application中是否存有某个值

if(Application[key名”] == null)

{

 

}

4.释放ApplicationApplication["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:隐藏域。Valuetextbox内的值

拥有Label所有的属性

 

TextMode——文本框的呈现模式;SingleLine--单行文本框;MultiLine-多行文本框;Password-密码框

 

ReadOnly  - 只读

MaxLength - 最大输入的字符数。只有TextModeSingleLinePassword的时候起作用,在MultiLine的时候不起作用。

 

Columns:宽度,以字母个数为单位

Rows:高度,以行数为单位。只有TextModeMultiLine的时候才起作用。在单行文本或多行文本下是不起作用的。

 

 

 

四、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代码,再执行ButtonClick代码。  原因?????

 

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.HTMLRepeater模板中,调用上面的方法。

 

 

 

 

 

!IsPostBack:获取一个值,该值指示页是第一次呈现或为了响应回发而加载

 

 

****.DateBind();-------控件及其所有子键绑定到指定数据源

 

SelectedValue:获取列表控件中指定项的值、选择列表控件中包含指定值的项

SelectedIndex:获取或设置列表中选定项的最低序号索引

 

posted on 2015-05-29 18:01  冰冥寒流  阅读(1088)  评论(0编辑  收藏  举报