在ASP.NET网页中,有三类控件

1HTML控件,2HTML控件+Runat="Server",3服务器控件请问,第2类控件与第3类控件有何区别,什么情况下用第2类控件,如何用第2类控件,请举例。谢谢... 1HTML控件,2HTML控件+Runat="Server",3服务器控件
请问,第2类控件与第3类控件有何区别,什么情况下用第2类控件,如何用第2类控件,请举例。
谢谢
展开
 我来答
零零的小店
2018-01-16 · TA获得超过601个赞
知道小有建树答主
回答量:140
采纳率:80%
帮助的人:22.5万
展开全部
念:
asp.net控件服务端控件 --> 响应服务端事件
HTML控件客户端控件 -- > 响应客户端事件
HTML客户端事件是不会提交给服务端的,比说点击按钮,改变文字颜色等,只是针用户机器本身,是不会发送数据包给远程服务器的
而 asp.net按钮点击之后,将会以post或者get形式发送给服务器,进行数据库操作等等,页面提交之后将会刷新。
但是ajax技术使客户端控件发送请求给webservice
现象获取用户输入到文本框中的内容:
服务器端控件:string s=Textbox1.text;
html控件:string s=request.querystring["text1"]; //text1为参数
另:
<input type="text" name="name" ><input type="button" value="确定">
定义一个变量通过request.getParameter("name")取得,其中name 是标签名称
另外在javascript中可以
先在标签里加上一个id 如<input type="text" name="name" id="name">
再通过document.getElementById("name").value 取得标签中的值
===========================================================
获取文本框中的内容有以下两种方法:
假设为如下文本框:
<input type="text" value="" id="text">

1、原生JS获取文本框的值:
document.getElementById("text").value //text为文本框的id

2、jquery获取文本框的值:
$("#text").val()
============================================================
Web服务器端控件和Html控件 关系
HTML 页面的扩展名是 .htm 或 .html。假如浏览器从服务器请求某张 HTML 页面,服务器不进行任何修改,就会把该页面发往浏览器。
ASP.NET 页面的扩展名是 .aspx。如果浏览器请求某张 ASP.NET 页面,那么在把结果发回浏览器之前,服务器首先会处理页面中的可执行代码。
最终浏览器还是会由html输出,服务器控件的页面访问速度比html的要慢的多。asp.net以页面一遍遍刷新html的形式,这就决定了他的机制很慢。而且越是追求对程序员友好、功能强大,那么其性能问题越是严重。
一句话:服务器控件是封装好了html控件。 服务器控件通过ViewState维持状态,而HTML没有,如果没有交互的,可以直接用HTML控件。
服务器端控件都会有个runat="Server"属性,
这样才能够在后台对其进行设置修改,
也就是在cs代码里面能对其修改设置。
可测试 放个HTML控件 在CS代码是引用不出控件名的
然后HTML控件加上runat="Server" 在CS代码就能引用该控件了
本质上ASP.NET 的服务器控件 解析后返回到前台还是HTML控件
建个页面 放一个asp:textbox上去
然后运行页面,然后查看页面源文件
会发现放上的服务器控件变成了HTML的inupt type="button"
<asp:Button width="7%" ID="btnupdate" runat="server" Text="Update" CssClass="trcss_tot1" OnClick="btnupdate_Click" />

顺便说一下VIEWSTATE:
由于HTTP连接属于无状态的,每次页面请求都无法记录上次请求页面的信息。
那么要保存上次请求页面上控件的值,也就是页面刷新后,填写的值不变,比方在textbox填了个‘a’,页面刷新后还是'a',.NET框架为实现这种机制,于是就用到了viewstate视图状态来保存这些控件的值,
那么将所有控件的值存在什么地方呢?可以运行程序,然后在页面中查看源文件,就可以看到一个input type="hidden" name="__VIEWSTATE"的标签,这个就是所谓的”视图“,它是经过服务器序列化过的,然后服务器接收后会反序列化这些隐藏域的值然后又从 新给这些控件赋值,从而页面刷新后还能记录上次请求时候的所有控件的值。服务器控件都会默认保存VIEWSTATE的 有个属性(EnableViewState)可以设置的, 设置为Flase就不保存了,页面刷新后,值也就没了,可以做个测试放个textbox设置EnableViewState为false,然后输入个 值,然后再用按钮去刷新页面,那么textbox会为空,因为没有视图状态记录到上次输入的值。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式