网络程序设计资料

注解

类 BoundField 由数据绑定控件 ((如 GridView 和 DetailsView) )用于将字段的值显示为文本。 对象的 BoundField 显示方式不同,具体取决于使用它的数据绑定控件。 例如, GridView 控件将对象显示为 BoundField 列,而 DetailsView 控件将其显示为一行。

若要指定要在 对象中显示的 BoundField 字段,请将 DataField 属性设置为字段的名称。 通过将 属性true设置为 HtmlEncode ,字段的值可以在显示之前进行 HTML 编码。 可以通过设置 DataFormatString 属性将自定义格式字符串应用于字段的值。 HtmlEncode当 属性为 true时,字段的编码字符串值用于自定义格式字符串。 默认情况下,仅当数据绑定控件处于只读模式时,格式设置字符串才应用于字段值。 若要将格式字符串应用于数据绑定控件处于编辑模式时显示的值,请将 ApplyFormatInEditMode 属性设置为 true。 如果字段的值为 null,可以通过设置 NullDisplayText 属性来显示自定义标题。 对象 BoundField 还可以通过将 属性设置为 ConvertEmptyStringToNull ,自动将空字符串 (“”) 字段值转换为 truenull 值。

通过将 属性设置为 Visiblefalse,可以在数据绑定控件中隐藏BoundField对象。 若要防止在编辑模式下修改字段的值,请将 ReadOnly 属性设置为 true。 在支持插入记录 ((如DetailsView控件) )的数据绑定控件中,可以通过将 属性设置为 InsertVisible 来false隐藏 BoundField 对象。 如果要在插入模式下隐藏自动生成的键字段,通常会执行此操作。

可以自定义 对象的页眉和页脚部分 BoundField 。 若要在页眉或页脚部分显示标题,请分别设置 HeaderText 或 FooterText 属性。 可以通过设置 HeaderImageUrl 属性来显示图像,而不是在页眉部分显示文本。 通过将 属性false设置为 ShowHeader ,可以在 对象中BoundField隐藏标头部分。

 备注

某些数据绑定控件 ((如 GridView 控件) )只能显示或隐藏控件的整个标头部分。 这些数据绑定控件不支持 ShowHeader 单个绑定字段的 属性。 若要显示或隐藏数据绑定控件 (的整个标头部分(如果可用) ),请使用 控件的 ShowHeader 属性。

Style 属性

说明

ControlStyle

对象的子 Web 服务器控件的 BoundField 样式设置。

FooterStyle

对象的页脚部分的 BoundField 样式设置。

HeaderStyle

对象的标头部分的 BoundField 样式设置。

ItemStyle

对象中数据项的 BoundField 样式设置。

还可以通过设置字段的不同部分的 BoundField 样式属性,自定义对象的外观 (字体颜色、背景色等) 。 下表列出了不同的样式属性。

BoundField()

初始化 BoundField 类的新实例。

构造函数

ThisExpression

此 API 支持产品基础结构,不能在代码中直接使用。

表示“this”表达式。

字段

AccessibleHeaderText

获取或设置某些控件中呈现为 AbbreviatedText 属性值的文本。

(继承自 DataControlField)

ApplyFormatInEditMode

获取或设置一个值,该值指示包含 DataFormatString 对象的数据绑定控件处于编辑模式时,BoundField 属性指定的格式化字符串是否应用到字段值。

Control

获取对数据控件的引用,该控件与 DataControlField 对象关联。

(继承自 DataControlField)

ControlStyle

获取 DataControlField 对象所包含的任何 Web 服务器控件的样式。

(继承自 DataControlField)

ConvertEmptyStringToNull

获取或设置一个值,该值指示在数据源中更新数据字段时是否将空字符串值 ("") 自动转换为 null 值。

DataField

获取或设置要绑定到 BoundField 对象的数据字段的名称。

DataFormatString

获取或设置字符串,该字符串指定字段值的显示格式。

DesignMode

获取一个值,该值指示数据控件字段当前是否在设计时环境中进行查看。

(继承自 DataControlField)

FooterStyle

获取或设置数据控件字段脚注的样式。

(继承自 DataControlField)

FooterText

获取或设置数据控件字段的脚注项中显示的文本。

(继承自 DataControlField)

HeaderImageUrl

获取或设置数据控件字段的标题项中显示的图像的 URL。

(继承自 DataControlField)

HeaderStyle

获取或设置数据控件字段标头的样式。

(继承自 DataControlField)

HeaderText

获取或设置显示在数据控件标头中的文本。

HtmlEncode

获取或设置一个值,该值指示在 BoundField 对象中显示字段值之前,是否对这些字段值进行 HTML 编码。

HtmlEncodeFormatString

获取或设置一个值,该值指示通过将 DataFormatString 属性应用于 BoundField 值而创建的文本在显示时是否应经过 HTML 编码。

InsertVisible

获取一个值,该值指示 DataControlField 对象在其父级数据绑定控件处于插入模式时是否可见。

(继承自 DataControlField)

IsTrackingViewState

获取一个值,该值指示 DataControlField 对象是否保存对其视图状态的更改。

(继承自 DataControlField)

ItemStyle

获取由数据控件字段显示的任何基于文本的内容的样式。

(继承自 DataControlField)

NullDisplayText

获取或设置当字段值为 null 时为字段显示的标题。

ReadOnly

获取或设置一个值,该值指示是否可以在编辑模式中修改字段的值。

ShowHeader

获取或设置一个值,该值指示是否呈现数据控件字段的标题项。

(继承自 DataControlField)

SortExpression

获取或设置数据源控件用来对数据进行排序的排序表达式。

(继承自 DataControlField)

SupportsHtmlEncode

获取一个值,该值指示 BoundField 对象是否支持 HTML 编码。

ValidateRequestMode

获取或设置确定控件是否验证客户端输入的值。

ViewState

获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原 DataControlField 对象的视图状态。

(继承自 DataControlField)

Visible

获取或设置指示是否呈现数据控件字段的值。

(继承自 DataControlField)

属性

方法

CloneField()

创建当前 DataControlField 派生对象的副本。

(继承自 DataControlField)

CopyProperties(DataControlField)

将当前 BoundField 对象的属性复制到指定的 DataControlField 对象。

CreateField()

创建一个空的 BoundField 对象。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)

ExtractValuesFromCell(IOrderedDictionary, DataControlFieldCell, DataControlRowState, Boolean)

使用指定的 IDictionary 对象中的值填充指定的 TableCell 对象。

FormatDataValue(Object, Boolean)

设定 BoundField 对象内的单元格中的指定字段值。

GetDesignTimeValue()

在设计器中呈现 BoundField 对象时,检索用作字段值的值。

GetHashCode()

作为默认哈希函数。

(继承自 Object)

GetType()

获取当前实例的 Type

(继承自 Object)

GetValue(Control)

检索绑定到 BoundField 对象的字段值。

Initialize(Boolean, Control)

初始化 BoundField 对象。

InitializeCell(DataControlFieldCell, DataControlCellType, DataControlRowState, Int32)

将指定的 TableCell 对象初始化为指定的行状态。

InitializeDataCell(DataControlFieldCell, DataControlRowState)

将指定的 TableCell 对象初始化为指定的行状态。

LoadViewState(Object)

还原以前为此字段存储的视图状态信息。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)

OnDataBindField(Object, EventArgs)

将字段值绑定到 BoundField 对象。

OnFieldChanged()

引发 FieldChanged 事件。

(继承自 DataControlField)

SaveViewState()

保存在页回发到服务器后对 DataControlField 视图状态所做的更改。

(继承自 DataControlField)

ToString()

返回表示此 DataControlField 对象的字符串。

(继承自 DataControlField)

TrackViewState()

使 DataControlField 对象跟踪对其视图状态所做的更改,以便这些更改可以存储在控件的 ViewState 属性中并且能够在同一页的不同请求间得以保持。

(继承自 DataControlField)

ValidateSupportsCallback()

确定包含在 BoundField 对象中的控件是否支持回调。

select

查询项
select*from 表名 查询全部列
select distinct 列名 from 表名 查询指定列,重复项不显示,经常用于获取列表,不显示重复项,一般不适用与两个列,因为很少有两个列一样的,特殊统计
select id,name from 表名 查询指定列名
select name myname from 表名 指定结果列别名
select 表名.列名 ,。。from 表名 指定列所属表,多表查询时使用
select sum(id),count(amount)from 表名 使用聚合函数用于统计
select sum(case name when ‘assss’ then 1 else 0 end)from class
判断name列是否为 ’asss‘ 值,是=1,否=0,通过sum()获取统计结果
获取单列不同状态的统计

查询条件
条件
true
select*from 表名 where id=100 基本条件查询
select*from 表名 别名 where name=‘aa’ and sex=1 复合查询,表别名
运算符
and or 支持()包含优先 
= > < >= <= !=通用判断
like 模糊查询 *select from 表名 where 列 like ’%aa_‘
% 代表0至多个字符 _代表1个未知字符
in 包含 select*from calss where id in(1,2,3)
between 范围查询 *select from class where id between 1 and 5
is | not is null判断 只能 is null 或is not null 不能 is “aaa” 不支持字符串
exists 存在查询,查询的是子查询是否有记录,返回布尔值
select*from class where id=1 and exists(select id from aaa)

分组

:group by 目标:便于统计,分组统计为核心
获取不重复项,可以获取多列的不重复项

select*from class GROUP BY name;
一般与聚合函数组合使用
select sum(列名) from 表名 group by 列名
select count(1),name from class group by name;
select count(1),name from class group by name,id;

统计判断:having 和where区别,where是在没查出来之前约束,having是在查出来之后筛选
having
一般和group by一起使用(类似于做了两次操作,当很麻烦一次查不出来的时候,可以用这种方法)
获取组里面只有一条记录的行
select name from calss group by name having count(1)>1;

排序:order by 两种asc顺序(默认值),desc逆序

先按name排序,然后name一样的再按id倒序
select*from class order by name,id desc

查询部分行:limit 查询部分行,用于换页
select*from class limit 2 ;只显示前两条记录
select*from class limit 1,3;从第二条开始显示3条记录,1是起始行的,3是最大行数(通过组合实现换页功能,只需更改起始行)

**多表关联:**概念
一对一:列的额外扩展
主键关联:必然关联,不自动编号 例如:学生和学生的保险状况
外键关联:非必然关联,有些人有这些记录,有些人可以没有,自动编号,不关心主键是否一样
一对多:多方加外键,一件事物,多方对一方补充,多方一个不能少,因为一方由多方组成
业务单据–大润发收据(单据总表和明细表)
多对一:多方加外键,两表没有必须性依赖
一方对多方的数据补充(学生,班级),多方可以少,少了多方,那一方也能存在,并不是组成关系
多对多:再创建关联表(三个表),商品和仓库之间的关系(库存表)
库存表结构:商品id,仓库id,库存数

多表关系查询:
外联:表关联关系写在where中,不推荐使用,因为它写在where中
select u.*,c.name classname from user u,calss c where u.classid=c.id;表别名 列别名,一旦用表别名,就不能写原来的列
内联:
inner join
select* from user inner join calss on user.classid=calss.id; //还可以连用
select* from user inner join calss on user.classid=calss.id inner join room on user.roomid=room.id ;//关联连用,推荐使用
select* from user inner join calss inner join room on user.classid=calss.id user.roomid=room.id ;//这种方式不推荐,容易出错
left join
使用时小心2个以上表关系连用问题
以左边表作为主表,可以不满足关联条件也可全部显示,但是要满足where条件
select* from user left/right join calss on user.classid=calss.id;
right join 同上,以右边表作为主表
full join 左右全部显示,mysql不支持
union 行拼接,列类型 数量必须一致
select id,name from user UNION select id,name from class

子查询
将另一个查询的结果作为当前查询的条件
select *from class where id in (select id from user)
子查询的结果列数量类型必须符合sql语法
delete ,update 根据其他表删除行
delete from user where classid=(select id from class group by name having count(1)>1 limit 1 )

逻辑视图查询
将子查询结果直接作为数据源,指定表名
select id from (select id from class group by name having count(1)>1 limit 1 ) a where a.id=1

总语法

超重要顺序
select [distinct] 列信息 from 表信息(关联) where 条件 group by 列 having 聚合条件 order by 列名 limit 行号

HTML中       等6种空白空格的区别

HTML提供了5种空格实体(space entity),它们拥有不同的宽度,非断行空格( )是常规空格的宽度,可运行于所有主流浏览器。其他几种空格(       ‌‍)在不同浏览器中宽度各异。

         

它叫不换行空格,全称No-Break Space,它是最常见和我们使用最多的空格,大多数的人可能只接触了 ,它是按下space键产生的空格。在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个)。要使用html实体表示才可累加,该空格占据宽度受字体影响明显而强烈。

         

它叫“半角空格”,全称是En Space,en是字体排印学的计量单位,为em宽度的一半。根据定义,它等同于字体度的一半(如16px字体中就是8px)。名义上是小写字母n的宽度。此空格传承空格家族一贯的特性:透明的,此空格有个相当稳健的特性,就是其占据的宽度正好是1/2个中文宽度,而且基本上不受字体影响。

         

它叫“全角空格”,全称是Em Space,em是字体排印学的计量单位,相当于当前指定的点数。例如,1 em在16px的字体中就是16px。此空格也传承空格家族一贯的特性:透明的,此空格也有个相当稳健的特性,就是其占据的宽度正好是1个中文宽度,而且基本上不受字体影响。

         

它叫窄空格,全称是Thin Space。我们不妨称之为“瘦弱空格”,就是该空格长得比较瘦弱,身体单薄,占据的宽度比较小。它是em之六分之一宽。

‌ 

它叫零宽不连字,全称是Zero Width Non Joiner,简称“ZWNJ”,是一个不打印字符,放在电子文本的两个字符之间,抑制本来会发生的连字,而是以这两个字符原本的字形来绘制。Unicode中的零宽不连字字符映射为“”(zero width non-joiner,U+200C),HTML字符值引用为: ‌

它叫零宽连字,全称是Zero Width Joiner,简称“ZWJ”,是一个不打印字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生了连字效果。零宽连字符的Unicode码位是U+200D (HTML: ‍ ‍)。

此外,浏览器还会把以下字符当作空白进行解析:空格( )、制表位( )、换行( )和回车( )还有( )等等。

TeacherManager2.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TeacherManage2.aspx.cs" Inherits="TeacherManage2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>无标题页</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <h1 align="center">教师管理2</h1>

        请选择教师:方法一:数据绑定SQLDataSouce    

        <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="USERNAME" DataValueField="USERID">

        </asp:DropDownList><BR><BR>

        方法二:手动DR循环插入Item项目:<asp:DropDownList ID="DropDownList2" runat="server">

        </asp:DropDownList><BR><BR><BR>

        3方法三:数据源用DataReader,然后再用数据绑定方法<asp:DropDownList ID="DropDownList3" runat="server">

        </asp:DropDownList>

        <br />

        <br />

        <asp:SqlDataSource ID="SqlDataSource1" runat="server"

            ConnectionString="<%$ ConnectionStrings:SQLConnectionString %>"

            SelectCommand="SELECT [USERID], [USERNAME] FROM [TEACHER] ORDER BY [USERID]">

        </asp:SqlDataSource>

        <br />

        数据源:<asp:Label ID="Label1" runat="server" Text="<%$ ConnectionStrings:SQLConnectionString %>"></asp:Label>

    </div>

    </form>

</body>

</html>

TeacherManager2.aspx.cs

        SqlConnection conn = new SqlConnection(connectionString);

        string cmdText = "SELECT USERID,USERNAME FROM TEACHER ORDER BY USERID";

        SqlCommand command1 = new SqlCommand(cmdText, conn);

        try

        {

            //打开连接

            conn.Open();

            //执行查询

            SqlDataReader dr1 = command1.ExecuteReader();

           

            // 方法二

            while (dr1.Read())

            {

                DropDownList2.Items.Add(new ListItem(dr1[1].ToString(),dr1[0].ToString()));          

                       

            }

            dr1.Close();

            SqlCommand command2 = new SqlCommand(cmdText, conn);

            SqlDataReader dr2 = command2.ExecuteReader();

            //*方法三数据绑定 *

            DropDownList3.DataSource = dr2;

            DropDownList3.DataTextField = "USERNAME";

            DropDownList3.DataValueField = "USERID";

          DropDownList3.DataBind();

            //

            dr2.Close();

        }

        catch (SqlException sqlex)

        {

            //显示错误信息

            Response.Write(sqlex.Message + "<br>");

        }

        finally

        {

            //关闭数据库链接

            conn.Close();

        }

    }

}

Web.config

<?xml version="1.0"?>

<!--

    注意: 除了手动编辑此文件以外,您还可以使用

    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的

     “网站”->“Asp.Net 配置”选项。

    设置和注释的完整列表在

    machine.config.comments 中,该文件通常位于

    \Windows\Microsoft.Net\Framework\v2.x\Config 中

-->

<configuration>

  <appSettings/>

  <connectionStrings>

    <!--  <add name="SQLConnectionString" connectionString="Data Source=(local);Initial Catalog=NetSchool;Persist Security Info=True;User ID=sa;Password=abc" providerName="System.Data.SqlClient"/>

  -->

    <add name="SQLConnectionString" connectionString="Data Source=(local);Initial Catalog=NetSchool;Persist Security Info=false;User ID=test;Password=test" providerName="System.Data.SqlClient"/>

  </connectionStrings>

  <system.web>

    <!--

            设置 compilation debug="true" 将调试符号插入

            已编译的页面中。但由于这会

            影响性能,因此只在开发过程中将此值

            设置为 true。

        -->

    <compilation debug="true" targetFramework="4.0"/>

    <!--

            通过 <authentication> 节可以配置 ASP.NET 使用的

            安全身份验证模式,

            以标识传入的用户。

        -->

    <authentication mode="Windows"/>

    <!--

            如果在执行请求的过程中出现未处理的错误,

            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,

            开发人员通过该节可以配置

            要显示的 html 错误页

            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

            <error statusCode="403" redirect="NoAccess.htm" />

            <error statusCode="404" redirect="FileNotFound.htm" />

        </customErrors>

        -->

    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>

  </system.web>

</configuration>

定义和用法

<a> 标签的 href 属性用于指定超链接目标的 URL。

href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了 <a> 标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。

提示和注释

注意:<a> 标签中必须提供 href 属性或 name 属性。

制作文本链接

一个引用其他文档的简单 <a> 标签可以是下列形式:

<a href="http://www.w3school.com.cn/index.html">W3School 在线教程</a>

浏览器用特殊效果显示短语“W3School 在线教程”(通常是带下划线的蓝色文本),这样用户就会知道它是一个可以链接到其他文档的超链接。就像这样:

W3School 在线教程

用户还可以利用浏览器中的选项来自己指定文本颜色、设置链接前和链接后链接文本的颜色。

提示:可以使用 CSS 伪类向文本超链接添加复杂而多样的样式。

制作图像链接

更复杂的锚还可以包含图像。下面这个 LOGO 是一个图像链接,点击该图像,可以返回 W3school 的首页:

<a href="http://www.w3school.com.cn/index.html"><img src="/i/w3school_logo_white.gif" /></a>

上面的代码会为 W3School 的 LOGO 添加一个返回首页的超链接

大多数图形浏览器都会在作为锚的一部分的图像周围放置特殊的边框。通过在 <img> 标签中把图像的 border 属性设置为 0 可以删除超链接的边框。也可以使用 CSS 的边框属性来全局性地改变元素的边框样式。

语法

<a href="value">

属性值

描述

URL

超链接的 URL。可能的值:

  • 绝对 URL - 指向另一个站点(比如 href="http://www.example.com/index.htm")
  • 相对 URL - 指向站点内的某个文件(href="index.htm")
  • 锚 URL - 指向页面中的锚(href="#top")

单行单列

快捷键:table>tr>td 然后在按一下 tab键

注意:其中标签定义的是有若干行,表示每行

被分割成若干单元格。

实现:

单行多列

快捷键:table>tr>td*N 然后按一下tab键,其中N是一个整数,代表需要生产多少列

多行单列

快捷键:table>tr*M>td 然后按一下tab键,其中M是一个整数,代表需要生产多少行

多行多列

快捷键:table>trM>tdN 然后在按一下 tab 键,其中M和N都是整数,M代表需要产生多少行,N代表需要产生多少列

带填充数据的表格

快捷键:table>tr*M>td{填充的内容KaTeX parse error: Expected 'EOF', got '}' at position 1: }̲*N 然后在按一下 tab 键…是一个从1开始自增的整数

单元格的合并

和 Excel 类似,HTML 也支持单元格的合并,包括跨行合并和跨列合并两种。

rowspan:表示跨行合并。在 HTML 代码中,允许我们使用 rowspan 特性来表明单元格所要跨越的行数。

colspan:表示跨列合并。同样的,在 HTML 中,允许我们使用 colspan 特性来表明单元格所要跨越的列数。


具体格式如下:

<td rowspan="n">单元格内容</td>
<td colspan="n">单元格内容</td>

n 是一个整数,表示要合并的行数或者列数。

此处需注意,不论是 rowspan 还是 colspan 都是 <td> 标签的属性。

下面的例子中,我们将表格第 1 列的第 3、4 行单元格合并(跨行合并),将第 4 行的第 2、3 列合并(跨列合并)。具体代码如下:

<table border="1" style="border-collapse: collapse;">

    <tr>

       <th>名称</th>

     <th>官网</th>

     <th>性质</th>

    </tr>

    <tr>

      <td>C语言中文网</td>

     <td>http://c.biancheng.net/</td>

     <td>教育</td>

    </tr>

    <tr>

      <td rowspan="2">百度</td>

      <td>http://www.baidu.com/</td>

      <td>搜索</td>

    </tr>

    <tr>

      <td colspan="2">http://www.dangdang.com/</td>

    </tr>

</table>

运行效果如图:


图4:合并单元格后的表格

 


通过运行结果可以发现:

rowspan 属性表示向下合并单元格,colspan 属性表示向右合并单元格。

 每次合并 n 个单元格都要少写 n-1 个<td>标签。

提示:即使一个单元格中没有任何内容,我们仍需使用 <td> 或 <th> 元素来表示一个空单元格的存在,建议在 <td> 或 <th> 中加入  (空格),否则低版本的 IE 可能无法显示出这个单元格的边框。

ASP.NET LinkButton 控件

Web 服务器控件参考手册

定义和用法

LinkButton 控件用于创建超链接样式的按钮。

注释:该控件的外观与 HyperLink 控件相同,但其功能与 Button 控件一样。

属性

属性

描述

.NET

CausesValidation

规定当 LinkButton 控件被点击时是否验证页面。

1.0

CommandArgument

有关所执行命令的附加信息。

1.0

CommandName

与 Command 事件相关的命令。

1.0

OnClientClick

当 LinkButton 控件被点击时被执行的函数的名称。

2.0

PostBackUrl

当 LinkButton 控件被点击时从当前页面进行回传的目标页面的 URL。

2.0

runat

规定该控件是服务器控件。必须设置为 "server"。

1.0

Text

LinkButton 上的文本。

1.0

ValidationGroup

当其回传服务器时,该 LinkButton 控件引起的验证所针对的控件组。

2.0

C# Eval在asp.net中的用法及作用

Eval( " ")和Bind( " ") 这两种一个单向绑定,一个双向绑定,bind是双向绑定,但需数据源支持
ASP.NET   2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem,   fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。缩 短的Eval语法与DataBinder.Eval的不同点在于,Eval会根据最近的容器对象(例如DataListItem)的DataItem属性 来自动地解析字段,而DataBinder.Eval需要使用参数来指定容器。由于这个原因,Eval只能在数据绑定控件的模板中使用,而不能用于 Page(页面)层。当然,ASP.NET   2.0页面中仍然支持DataBinder.Eval,你可以在不支持简化的Eval语法的环境中使用它。
下面的例子演示了如何使用新的简化的Eval数据绑定语法绑定到DataList数据项模板(ItemTemplate)中的Image、Label和HyperLink控件。

HTML <td> 标签的 valign 属性

定义和用法

valign 属性规定单元格中内容的垂直排列方式。

浏览器支持

所有浏览器都支持 valign 属性。

语法

<td valign="value">

属性值

描述

top

对内容进行上对齐。

middle

对内容进行居中对齐(默认值)。

bottom

对内容进行下对齐。

baseline

与基线对齐。

浏览器支持

表格中的数字注明了完全支持该属性的首个浏览器版本。

属性

Chrome

IE

Firefox

Safari

Opera

border

1.0

4.0

1.0

1.0

3.5

定义和用法

border 简写属性在一个声明设置所有的边框属性。

可以按顺序设置如下属性:

border-width

border-style

border-color

如果不设置其中的某个值,也不会出问题,比如 border:solid #ff0000; 也是允许的。

默认值:

not specified

继承性:

no

版本:

CSS1

JavaScript 语法:

object.style.border="3px solid blue"

DataGrid.EditItemIndex 属性

参考

定义

命名空间:

System.Web.UI.WebControls

程序集:

System.Web.dll

获取或设置 DataGrid 控件中要编辑的项的索引。

C#复制

public virtual int EditItemIndex { get; set; }

属性值

Int32

DataGrid 控件中要编辑的项的索引。 默认值为 -1,指示不编辑 DataGrid 控件中的任何项。

例外

ArgumentOutOfRangeException

指定的索引小于 -1。

前言

不论是Get请求还是Post请求,都是浏览器向服务器请求响应的一种方式,那么它们有什么不同呢?

Get请求和Post请求的区别

  1. 首先从字面意思上

   Get的意思是“得到,获取”,Post的意思是“推送”。所以可见如果是Get方式,即浏览器向服务器请求得到一些数据;如果是Post方式,就是浏览器主动向服务器推送数据。

  2. 传送数据的方式不同

   Get方式会直接将参数放在URL地址的后面,用户可以直接看的见,而且Get方式,由于浏览器的不同,允许传送最大数据量的大小也不同,一般都是2KB

   Post方式传送数据时,会将数据放在http报文的请求体中,用户是看不见的,而且理论上传送的数据量大小没有限制。

所以相对来说,Post方式要比Get方式更安全一些。

  3. 后台接收数据的方式不同

      //Get方式

      contxt.Request.QueryString["txtname"];

      //Post方式

      context.Request.Form["txtname"];

什么时候用Get,什么时候用Post

一般情况下,我们都是用Post方式。因为Get方式传送的数据量有限而且不安全,如果我们传送的数据量比较大,用Get方式显然不合适;而且像向服务器提交敏感数据时,比如密码等用Get也不合适。所以我们一般用Post方式。

下面举两个例子来说明这两种方式的使用场合:

比如向服务器提交密码等,就要用Post方式;如果是搜索结果页面,就要用Get方式,因为有时候我们要把结果分享给其他人,这时候用Post就不合适了,因为Post方式会将参数放在请求体中,这样就无法分享给别人指定的页面了。

哪些是Get请求,哪些是Post请求

直接在浏览器中输入URL地址,或者点击超链接等都是Get方式。

而Post只有一种方式,就是将表单中的 method 属性改为 post。

了解了相应的请求方式 ,我们在后台写代码来接收数据时,就要注意了,因为它们接收参数的方式不同。

请求

请求,由客户端向服务端发出,可以分为3部分内容:请求方法(Request Method) 、请求的网址( Request URL )、请求报文(Request message)

请求方法

常见的请求方法有两种:GET和POST。

在浏览器中直接输入 URL 并回车,这便发起了一个 GET 请求,请求的参数会直接包含到 URL里。例如,在百度中搜索 Python ,这就是一个 GET 请求,链接为 https://www. baidu.corn/s?wd=Pthon,其中 URL 中包含了请求的参数信息,这里参数 wd 表示要搜寻的关键字 。

POST 请求大多在表单提交时发起。比如,对于一个登录表单,输入用户名和密码后,点击“登录”按钮,这通常会发起一个 POST请求,其数据通常以表单的形式传输,而不会体现在 URL中。

两者区别

GET 请求中的参数包含在 URL 里面,数据可以在 URL 中看到,而 POST 请求的 URL 会包含这些数据,数据都是通过表单形式传输的,会包含在请求体中。

GET 请求提交的数据最多只有 1024 字节,而 POST 方式没有限制。

一般来说,登录时,需要提交用户名和密码,其中包含了敏感信息,使用 GET 方式请求的话,密码就会暴露在 URL 里面,造成密码泄露,所以这里最好以 POST 方式发送。上传文件时,由于文件内容比较大,也会选用 POST 方式。

其他请求方式

 

请求报文

由请求行、请求头、请求体组成

请求行

由请求方式和HTTP协议和版本组成

如:GET / HTTP/1.1

请求头

请求头,用来说明服务器要使用的附加信息,比较重要的信息有 Cookie 、Referer、User-Agent等。下面简要说明一些常用的头信息。

Accept

请求报头域,用于指定客户端可接受哪些类型的信息。

​​​​​​​Accept-Language

​​​​​​​指定客户端可接受的语言类型。

​​​​​​​Accept-Encoding

​​​​​​​指定客户端可接受的内容编码。

​​​​​​​Host

​​​​​​​用于指定请求资源的主机 IP 和端口号,其内容为请求 URL 的原始服务器或网关的位置。从HTTP 1. 版本开始,请求必须包含此内容。

​​​​​​​Cookie

​​​​​​​也常用复数形式 Cookies ,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据。它的主要功能是维持当前访问会话。例如,我们输入用户名和密码成功登录某个网站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是Cookies 的功劳。Cookies 里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头中加上 Cookies 并将其发送给服务器,服务器通过 Cookies 识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登录之后才能看到的网页内容。​​​​​​​​​​​​​​

​​​​​​​Referer

​​​​​​​此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这 信息并做相应的处理,如做来源统计、防盗链处理等。

​​​​​​​User-Agent

简称 UA ,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本 浏览器及版本等信息 在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别出为爬虫。

​​​​​​​Content-Type

也叫互联网媒体类型( Internet Media Type )或者 MIME 类型,在 HTTP协议消息头中,它用来表示具体请求中的媒体类型信息。例如, text/html 代表 HTML 格式,image/gif 代表 GIF 图片, application/json 代表JSON 类型,

在爬虫中,如果要构造 POST 请求,需要使用正确的 Content-Type,并了解各种请求库的各个参数设置时使用的是哪种 Content-Type,不然可能会导致 POST 提交后无法正常响应。

​​​​​​​​​​​​​

 

​​​​​​​​​​​​​​​​​​​​​请求体

内容是 POST 请求中的表单数据,而对于 GET 请求,请求体则为空。

响应

响应,由服务端返回给客户端,响应报文可以分为三部分:响应行( Response line )、响应头( Response Headers )和响应体( Response Body)。

响应行

由HTTP版本响应、状态码、状态描述组成。

如;HTTP/1.1 200 OK

响应状态码

表示服务器的响应状态。

常见的状态码有:

200

请求成功

307

重定向

400

错误的请求

404

请求资源在服务器中不存在

500

服务器内部源代码出现错误

状态码和错误原因如下图:

 

 

响应头

用来说明响应的数据

常用的响应头如下:

Accept-Patch

指定服务器所支持的文档补丁格式

Accept-Ranges

服务器所支持的内容范围

Content-Disposition

对已知MIME类型资源的描述,浏览器可以根据这个响应头决定是对返回资源的动作,如:将其下载或是打开。

Content-Encoding

响应资源所使用的编码类型。

Content-Language

响就内容所使用的语言

Content-Length

响应消息体的长度,用8进制字节表示

Content-Type

当前内容的MIME类型

Date

此条消息被发送时的日期和时间(以RFC 7231中定义的"HTTP日期"格式来表示)

Expires

指定一个日期/时间,超过该时间则认为此回应已经过期

Server

服务器的名称

响应体

就是网页的代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卷七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值