ASP.NET服务端基本控件介绍

大概分为三种控件:

HTML控件,ASP.NET把HTML控件当成普通字符串渲染到浏览器端,不去检查正确性,无法在服务端进行处理
ASP.NET服务端控件,经过ASP.NET高度封装的控件,运行在服务端,可以用C#代码进行操作,
会渲染到客户端为HTML控件
runat=server的HTML控件,在HTML控件中添加runat="server",也是运行在服务端,也可以用C#代码操作
也会渲染成HTML,不像ASP.NET服务端控件那样高度封装,和服务端控件相比:
如果控件没有被ASP.NET服务端控件封装时,用这个很方便。

ASP.NET服务端控件是对HTML的封装,在C#代码中就可以用 txt.Text="abc“方式来调用,但被人滥用,
应该 物尽其用,服务端控件在内网系统(OA),互联网系统的后台部分访问频率不高的很适合用

所有的ASP.NET大部分都是从 Control,WebControl类继承的,几乎都有的成员有:
1. ClientID, 获得控件在客户端的ID,控件在服务端的ID不一定等于客户端的ID,如 ListView 就不是
因此如果要在客户端通过 DOM,JQuery的 getElementByid,$("#id")来操作最好不要写服务端ID,
而是 $("#<%=txt1.ClientID%>") 或 document.getElementById('<%=Button1.ClientID %>')
2. Visible 属性,控件是否可见,如果Visible=False 是不会渲染到HTML中的,
和HTML的style.display='none' 效果是不一样的
3. CssClass 属性,控件的样式名,就是HTML中控件的 Class 属性,也可单独修改 BackColor,等属性,
但是不建议这么做,因为会生成很多内联样式,占带宽,不便统一修改
4. Attributes, 用于设置获取控件的额外属性,和DOM中的 setAttribut(),getAttribut()一样
Button1.Attributes["code"] = "5"; //在HTML中为Button1增加一个 code 属性,并赋值为5
Button1.Attributes["onmouseover"] = "alert('hello!')"; //增加一个onmouseover事件

ASP.NET服务端基本控件

1. Lable控件,Text属性为显示的文本,默认渲染成 <span>,当设置 AssociatedControlID属性
用于关联一个控件时,则会渲染成<Label>并且将 for 属性设置为被关联的控件的ClientID
2. Literal控件,也是展示一段文本,但是不会渲染额外的标签,就是将Text属性的值展示出来
还有一个功能就是 Mode属性的Encode,可以将Text里面的代码转义HTML,<将转换成&lt; 防止XSS跨站
3. TextBox控件,文本框控件,TextMode属性取值SingleLine,MultiLine,Password,分别渲染成:
input(type=text),textarea和input(type=password),当AutoPostBack属性为 true的时候,
用户焦点离开TextBox就会造成页面Post提交,实现原理就是 TextChanged事件,文本发生变化
时事件触发,ASP.NET提交表单最好用调用 __doPostBack方法
4. RadioButton控件,渲染为input(type=radio),通过GroupName属性进行分组
5. Button控件,OnClientClick属性,当用户点击时在浏览器执行的代码,渲染成 input(type=button)
6. LinkButton控件,渲染成超链接,href为一段javascript代码,进行表单的POST,无法"在新窗口中打开连接"
7. ImageButton控件,显示为图片,渲染成 input(type=image)
Button,LinkButton,ImageButton等控件都有CommandName,CommandArgument两个属性和 Command 事件
可以让多个按钮共享一个 Command 事件处理函数,通过读取事件对象 e 的CommandName,CommandArgument
两个属性读取被点击按钮上设置的这两个参数来执行不同的操作,如编辑,删除多行数据
8. Panel控件,用来存放一些控件,当Visibe设为False的时候,里面的控件都全部隐藏,默认渲染成<DIV>
如果设置了 GroupingText属性(为控件设一个边框并设置标题),那么就渲染为含有<fieldset>的div标签,
也就是GroupBox效果
9. HyperLink控件,超链接,和LinkButton不一样(常考),不会向服务器端Post,就是一个超链接,
NavigateURL:链接地址,Text:显示文本,如果设定imageUrl则会显示图片超链接
主要优势在于会自动将虚拟路径转换为客户端路径,渲染后就是一个 <a>
10. FileUpload控件,文件上传控件,渲染成input(type=file),属性:
FileContent 以流形式获得上传的文件
HasFile Bool值,表示用户是否选择文件
FileName 文件名,如: a.jpg
PostedFile 将要上传的文件,里面也有 FileName 结果为: C:\AA\a.jpg ,可获得文件详细信息
SaveAs方法用于将文件保存到磁盘的指定位置,注意:只允许上传指定类型文件,上传文件夹不给执行

注意:
默认最大的上传文件只有 4MB ,如想更大,则需要修改 Web.Conf 的<system.web>中,增加如下属性:
<httpRuntime maxRequestLength="10240"/> // 按KB计算,1024KB = 1MB

11.MultiView,View 用来作简单的向导,一个MultiView包含多个View,View必须在MultiView里面
ActiveViewIndex 当前活动视图控件,默认为-1 不显示,从0开始设置
ActiveViewChanged事件 当视图改变时所触发的事件

12.Wizard向导 是MultiView的升级版,大部份都封装好了的

13.ImageMap热点地图 主要是对图片区域进行处理,如中国地图之类的
ImageAlign 指定图片地址
HotSpots 区域的设置,上,下,左,右
HotSpotMode 导航的行为,是否导致回发

文件上传案例: FileUpload1 为上传控件ID
if (FileUpload1.HasFile) //判断用户是否选择了文件
{
string path = Server.MapPath("~/upload/"); //得到上传路径
FileUpload1.SaveAs(path + FileUpload1.FileName); //保存文件
Response.Write("<script>alert('上传成功!')</script>");
}
else
{
Response.Write("<script>alert('上传失败!')</script>");
}
完美上传功能:
    protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
// 将虚拟地址转换成物理地址
string dirP = Server.MapPath("~/UpLoad/"); // 判断目录是否存在,不存在则创建
if (!Directory.Exists(dirP))
{
Directory.CreateDirectory(dirP);
} //得到扩展名
string ExtName = Path.GetExtension(FileUpload1.FileName).ToLower(); //判断上传的文件格式
if (ExtName != ".jpg" && ExtName != ".gif")
{
Page.ClientScript.RegisterStartupScript(typeof(Page), null, "alert('格式不正确!')", true);
return;
} // 通过 GetFileName() 方法 得到不会重复的文件名
string FileName = GetFileName() + ExtName; // 用SaveAs方法保存文件,里面必须要 物理路径
FileUpload1.SaveAs(dirP + FileName);
Page.ClientScript.RegisterStartupScript(typeof(Page), null, "alert('上传成功!')", true);
Label1.Text = "上传的文件名:" + FileUpload1.FileName + "<br />" +
"文件大小:" + FileUpload1.PostedFile.ContentLength + "<br />" +
"文件类型:" + FileUpload1.PostedFile.ContentType + "<br />" +
"保存路径:" + dirP + FileName;
Image1.ImageUrl = ("~/UpLoad/") + FileName;
}
else
{
Page.ClientScript.RegisterStartupScript(typeof(Page), null, "alert('请选择文件!')", true);
}
}
// 通过取得当前时间来得到 不重复的文件名
public string GetFileName()
{
StringBuilder file = new StringBuilder();
file.Append(DateTime.Now.Year);
file.Append(DateTime.Now.Month);
file.Append(DateTime.Now.Day);
file.Append(DateTime.Now.Second);
file.Append(DateTime.Now.Millisecond); return file.ToString();
}

ASP.NET服务端基本控件介绍的更多相关文章

  1. asp.net动态网站repeater控件使用及分页操作介绍

    asp.net动态网站repeater控件使用及分页操作介绍 1.简单介绍 Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功 ...

  2. 基于CkEditor实现.net在线开发之路(3)常用From表单控件介绍与说明

    上一章已经简单介绍了CKEditor控件可以编写C#代码,然后可以通过ajax去调用,但是要在网页上面编写所有C#后台逻辑,肯定痛苦死了,不说实现复杂的逻辑,就算实现一个简单增删改查,都会让人头痛欲裂 ...

  3. asp.net学习之DataList控件

    asp.net学习之DataList控件   DataList控件与Repeater控件一样由模板驱动,与Repeater控件不同的是: DataList控件默认输出是一个HTML表格.DataLis ...

  4. asp.netajax开发应用心得-accordation控件的事件处理

    今天,再次运行以前的项目时,发现按钮的单击事件不起作用了,加了断点之后发现根本没有触发该事件.... 按照网上找到的答案,有的说把控件删掉重新拖拽一个进去,虽然以前也遇到过控件失效,重新拖拽有效的时候 ...

  5. asp.net中的ListBox控件添加双击事件

    问题:在Aspx页里的ListBox A中添加双击事件,将选中项添加到另一个ListBox B中,双击ListBox B中的选中项,删除当前选中项 页面: <asp:ListBox ID=&qu ...

  6. iOS开发UI篇—UIScrollView控件介绍

    iOS开发UI篇—UIScrollView控件介绍 一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 ...

  7. android xml 常用控件介绍

    android常用控件介绍 ------文本框(TextView)     ------列表(ListView)     ------提示(Toast)     ------编辑框(EditText) ...

  8. asp.net学习之Repeater控件

    asp.net学习之Repeater控件 文章摘自:http://www.cnblogs.com/shipfi/archive/2009/10/19/1585703.html Repeater控件和D ...

  9. 《ASP.NET1200例》ListView 控件与DataPager控件的结合<二>

    ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示 为什么使用ListView+DataPager的方式实现分页显示? .net提供的诸多数据绑定控件,每一种都有它自己 ...

随机推荐

  1. poj 2367 Genealogical tree (拓扑排序)

    火星人的血缘关系很奇怪,一个人可以有很多父亲,当然一个人也可以有很多孩子.有些时候分不清辈分会产生一些尴尬.所以写个程序来让n个人排序,长辈排在晚辈前面. 输入:N 代表n个人 1~n 接下来n行 第 ...

  2. PC-用Windows XP自带的组策略加固操作系统

    1.我的壁纸你别改==================================== 启动组策略时,单击“开始”按钮,选择“运行”命令,在“运行”文本框中输入“gpedit.msc”命令,即可启 ...

  3. JS 创建对象的几种方式

    面向对象就是把属性和操作属性的方法放在一起作为一个相互依存的整体--对象,即拥有类的概念,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性! ECMA-262把对象定义为:"无 ...

  4. ThinkPHP函数详解:D方法

    从本篇开始,我们会陆续给大家详细说明下框架内置函数的用法. D方法 D方法应该是用的比较多的方法了,用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持 ...

  5. jekyll bootstrap更改主题theme

    使用主题 介绍: 由于JB版本号0.2.X的主题,如今全然是模块化的.他们跟踪和单独版本号的主题包. 这让每一个人都能够自由公布和共享主题. Jekyll-Bootstrap v 0.2.x仅仅附带t ...

  6. CSS3画腾讯QQ图标 无图片和js参考

    css代码: body { font: 12px Tahoma,arial,sans-serif; margin:; padding:; } #mask { left:; opacity: 0.2; ...

  7. careercup-树与图 4.1

    4.1 实现一个函数,检查二叉树是否平衡.在这个问题中,平衡树的定义如下:任意一个结点,其两颗子树的高度差不超过1. C++实现代码: #include<iostream> #includ ...

  8. How does CCFileUTils::fullPathForFilename work

    OverView The purpose of this document is show you how does function CCFileUtils::fullPathForFilename ...

  9. CCLabelAtlas创建自定义字体

    有时候游戏中要用到一些特殊的字体效果,特别是数字. CCLabelAtlas就可以从png图中读取文字. CCLabelAtlas* diceCount=CCLabelAtlas::labelWith ...

  10. iOS开发简单高效的数据存储

    在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题,你是用什么方法来持久保存数据的?这是在几乎每一次关于iOS技术的交流或讨论都会被提到的问题,而且大家对这个问题的热情持续高涨.本文主要从概 ...