您的位置:首页 > 编程语言 > ASP

Asp.Net服务端的基本控件

2020-03-02 02:28 609 查看

今天开始把最基础的Asp.Net服务端基本控件学习巩固了一下

1.Asp.Net服务端控件是Asp.Net对HTML的封装,在C#代码中就可以用txt1.Text="指定值"这种方式修改 input的值,Asp.Net会将服务端控件渲染成HTML代码输出给浏览器,服务端控件是Asp.Net非常容易上手,也非常吸引初学者,但也是被人诟病的东西。因为它会传输很多无法的东西,如viewstate. 服务端控件在内网或互联网系统的后台部分等访问频率不高的地方还是很适合的。

 

服务端控件只能用post方式提交,用get很麻烦,因为它携带了大量的数据,如果用get会给用户很大的干扰。

2.所有的Asp.net大部分都有是从Control,WebControl类继承的,几乎所有成员有以下内种属性:

(1) ClientID:控件在客户端的ID,控件在服务端的id不一定等于客户端HTML中的id,如在用户自定义的web控件中放出一个edit和 button,它们默认的id为textBox1和button1,当我们把这个web控件拖动到一个网页上时就会显示这两个控件,你多放上几个此种控 件,你再看下html客户端源码,你会发现它和服务端的id是不一样的,这就是clientID.

因此如果要在客户端通过Js,jQuery,Dom的getElementById,$("#id")来操作控件的话最好不要直接写服务端ID,而是这样写:$("#<%=txt1.ClientID%")等.

  (2) Visible属性,控件是否可见。如果Visible=False是不会被渲染到HTML客户端的,这和在HTML中 style.display=none的效果是不一样的。 如果用HTML的display效果,你在运行进查看网页的源码,就会发现在html中可以看到这些元素,而如果用服务端控件的visible为 false,则在网页的源码中是看不到这个元素的,即在客户端这个元素并不存在。只有为Ttrue时才会出现在客户端。

 (3) CssClass属性:控件的样式名,其实就是HTML控件的class属性。

 (4) Attributes:用来设置获取控件的额外属性,和Dom中的setAttribute(),getAttribute()是一样的。

它有几下几个常用的控件:

  1.Label控件,Text属性为显示的文本,AssociatedControlID属性用来关联一个控件。如果为空的话会展示为HTML中的 span元素。如果指定为一个控件的id,则会展示为一个HTML中的<Label>并且将for属性设置为被关联控件的ClientID.

  2. Literal控件,它是展示一段文本,但是Literal控件不会渲染成任何额外的标签,就是将Text属性的值展示出来而已。

它有个属性Mode的值为Encode,相当于HttpUtility.htmlEncode函数,即可把< >等符号解析为其它的,不会把这些符号当成js中的符号。

   3. textBox控件,文本框控件,textMode属性取值SingleLine,MultiLine,Password,分别渲染为input的 text,textarea,password.当AutoPostBack属性为True时,用户名焦点离开TextBox就会造成页面的post.实 现原理就是TextChanged事件,即文本发生变化时触发。

  4. RadioButton控件,渲染为input type=radio.通过Groupname 属性进行分组。

  5.Button控件。OnClientClick属性,当用户点击按钮的时候在浏览器端执行的代码,注意OnClientClick是字符串属性,写的就是js代码,运行在浏览器端。

 6.LinkButton .用法和Button差不多,区别就是Button控件渲染为按钮,而linkButton渲染为超连接。不要用linkbutton来实现普通的超连 接,因为lindbutton的href为一般js代——进行的是表单的post.无法在“新窗口”中打开连接。

 7.Imagebutton控件也和button差不多,只不过是显示图像,渲染为input(type=imaeg)

 8.Button,linkButton,ImageButton等控件都有CommandName,CommandArgument两处属性和 Command事件。可以让多个按钮控件共享一个Command事件处理函数。通过读取事件对象e的 CommandName\CommandArgument两个属性读取被点击按钮上设置的这两个参数来执行不同的操作

9. Panel控件。 它是用来盛放一些控件,如果设定了GroupText属性,那么就被渲染为<fieldset>标签,也是就GroupBox效果,否则会渲染为<div>效果。

  10.HyperLink控件,超连接。和LinkButton不一样,不会向服务器端Post,就是一个超连接。

      NavigateUrl:连接地址; Text为显示文本。如果设定imageUrl属性,则会显示图片超连接。

  11.FileUpload控件,文件上传的控件。渲染成input( type=file).

     它的属性为: FileContent:以流的形式获得上传的文件.  FileName:上传的文件名. HasFile:bool.表示用户是否选择文件。 SaveAs:用于将文件保存到磁盘的指定位置。

     当然用户可以上传个aspx样的网页然后再运行这个上传后的网页,它可以在网页上写上:Files.deleteAllFile等,就可以把网站上特定目 录中的文件都删除,如何防范:可以只允许上传指定类型的文件,并设定上传的文件夹不给执行的权限即可。即WebShell就是专门干这样的坏事的。

转载于:https://www.cnblogs.com/jinpn/p/4526820.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
aiyina4060 发布了0 篇原创文章 · 获赞 0 · 访问量 72 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: