zoukankan      html  css  js  c++  java
  • 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:获取或设置列表中选定项的最低序号索引

  • 相关阅读:
    禁止页面缓存 移动端
    常见的请求头与响应头介绍
    阮一峰 ES6学习
    禁止页面缩放 移动端
    10月30日学习日志
    11月7日学习日志
    11月6日学习日志
    10月31日学习日志
    11月1日学习日志
    11月9日学习日志
  • 原文地址:https://www.cnblogs.com/xianshui/p/4539171.html
Copyright © 2011-2022 走看看