1、服务器控件和客户端控件的详细区别?
服务器端控件:服务器端控件就是组件啦,因为在实际的网站开发中某些功能使用单纯的网页动态开发语言无法实现,就需要用到这样东西,先用其它编程语言按照组件的标准开发相应的功能,只要我们在服务器端安装这个组件,我们就可以按照标准com调用方式,使用网页开发语言来调用。
举个例子:
现在有个数据库,我们在写入的时候需要加密,读出的时候需要解密,如果仅使用asp或php进行加密解密,那么我们只要有asp或php的代码,就可以很轻松地知道解密的算法,那么加密也就失去了意义。所以我们需要一个封装的dll来解决这样的问题。
大致就这样吧。 另外,服务器端控件必须要有runat=server这句话。客户端控件 由客户端浏览器解释执行。区别:客户端控件由客户端浏览器解释执行服务器控件需要回发执行,当首次打开页面时,需初始化
服务器端控件和客户端控件在性能上是用差别的。服务器端控件比较灵活,客户端控件性能好,我们怎么选择,一般都是根据实际需求来,服务器端控件在性能上是没有客户端控件性能好,但是一个项目可以注意性能的方面很多,如果刻意的话,不太好,可能一个Textbox区别不是很多,但是一个GridView就很麻烦了,会花去很多时间。孟老师也的说法也有一定的道理,凡是不能走极端,充分利用各自的特点,平衡各方面的因素。总结:尽量使用客户端控件,服务端控件会引起回发,而降低效率。
在能实现相同的功能,首选客户端控件。
不过有时候,必须要服务端控件才能实现功能,如后台要处理业务逻辑。
服务器控件实际上就是客户端控件在客户端的映射而已。
2、服务器端控件和客户端控件的比较?
区别:服务器端控件都会有个runat="Server"属性,
这样才能够在后台对其进行设置修改,
也就是在cs代码里面能对其修改设置。
你做下测试 你放个HTML控件 在CS代码是引用不出控件名的
然后你个HTML控件加上runat="Server" 在CS代码就能引用该控件了
本质上ASP.NET 的服务器控件 解析后返回到前台还是HTML控件
你建个页面 放一个asp:textbox上去
然后运行页面,然后查看页面源文件
你会发现放上的服务器控件变成了HTML的inupt type="button"
至于你说的视图状态应该是说这个吧:
由于HTTP连接属于无状态的,每次页面请求都无法记录上次请求页面的信息。
那么要保存上次请求页面上控件的值,也就是页面刷新后,填写的值不变,比方在textbox填了个‘a’,页面刷新后还是'a',.NET框架为实现这种机制,于是就用到了viewstate视图状态来保存这些控件的值,
那么将所有控件的值存在什么地方呢?你可以运行你的程序,然后在页面中查看源文件,就可以看到一个input type="hidden" name="__VIEWSTATE"的标签,这个就是你所谓的”视图“,它是经过服务器序列化过的,然后服务器接收后会反序列化这些隐藏域的值然后又从新给这些控件赋值,从而页面刷新后还能记录上次请求时候的所有控件的值。服务器控件都会默认保存VIEWSTATE的 有个属性(EnableViewState)可以设置的, 设置为Flase就不保存了,页面刷新后,值也就没了,可以做个测试放个textbox设置为EnableViewState为false,然后输入个值,然后再用按钮去刷新页面,那么textbox会为空,因为没有视图状态记录到上次你输入的值。
3、js获取服务器控件
首先你是服务器端控件。
var hf = document.getElementById("hfIDList");
这个方法肯定是对的。
只是你的ID在客户端中的源代码中变了。
你点击右键查看源代码得到正确的ID即可。
或者采用
var hf = document.getElementById("<%=hfIDList.ClientID%>");
<%=hfIDList.ClientID%> 可直接获取正确的ID。
4、web 服务器控件的工作原理
Web 服务器控件 (Web server control) 属于 System.Web.UI.WebControls 命名空间的 ASP.NET 服务器控件。Web 服务器控件比 HTML 服务器控件更丰富、更抽象。Web 服务器控件在 ASP.NET 页上有 asp 标记前缀,例如 <asp:Button runat="server" />。 HTML控件可以通过修改代码将其变成Web服务器端控件,几乎所有的HTML标记只要加上runat = "server",这个服务器控件标识属性后都可以变成服务器端控件。这与普通HTML标记相比最大的区别在于,服务器端控件可以通过服务器端代码来控制。
5、简述HTML服务器控件
HTML 服务器控件是服务器可理解的 HTML 标签。ASP.NET 文件中的 HTML 元素默认作为文本内进行处理。为了使这容些元素可编程化,需要向 HTML 元素添加 runat="server" 属性。该属性指示该元素应作为服务器控件进行处理。
注:1、所有 HTML 服务器控件必须位于带有 runat="server" 属性的 <form> 标签内!
2、ASP.NET 要求所有 HTML 元素必须正确关闭和嵌套。
WEB服务器控件与HTML服务器控件的区别是:
1、前者可以触发服务器控件特有的事件,后者只能通过回递的方式触发服务器上的页面级事件。
2、输入到前者中的数据在请求之间可以维护(即具有状态管理功能),而后者无法自动维护数据,只能使用页面级的脚本来保存和恢复。
3、前者可以自动检测浏览器并调整到恰当的显示,而后者没有自动适应功能,必须在代码中手动检测浏览器。
4、每个服务器控件都具有一组属性,可以在服务器端的代码中更改控件的外观和行为,而后者只有HTML属性。
注:如果某些控件不需要服务器端的事件或状态管理功能时,可以选择HTML控件,这样可以提高应用程序的性能。
6、asp.net服务器控件与客户端控件的区别?
区别:服务器端控件都会有个runat="Server"属性,
这样才能够在后台对其进行设置修改,
也就是在cs代码里面能对其修改设置。
你做下测试 你放个HTML控件 在CS代码是引用不出控件名的
然后你个HTML控件加上runat="Server" 在CS代码就能引用该控件了
本质上ASP.NET 的服务器控件 解析后返回到前台还是HTML控件
你建个页面 放一个asp:textbox上去
然后运行页面,然后查看页面源文件
你会发现放上的服务器控件变成了HTML的inupt type="button"
至于你说的视图状态应该是说这个吧:
由于HTTP连接属于无状态的,每次页面请求都无法记录上次请求页面的信息。
那么要保存上次请求页面上控件的值,也就是页面刷新后,填写的值不变,比方在textbox填了个‘a’,页面刷新后还是'a',.NET框架为实现这种机制,于是就用到了viewstate视图状态来保存这些控件的值,
那么将所有控件的值存在什么地方呢?你可以运行你的程序,然后在页面中查看源文件,就可以看到一个input type="hidden" name="__VIEWSTATE"的标签,这个就是你所谓的”视图“,它是经过服务器序列化过的,然后服务器接收后会反序列化这些隐藏域的值然后又从新给这些控件赋值,从而页面刷新后还能记录上次请求时候的所有控件的值。服务器控件都会默认保存VIEWSTATE的 有个属性(EnableViewState)可以设置的, 设置为Flase就不保存了,页面刷新后,值也就没了,可以做个测试放个textbox设置为EnableViewState为false,然后输入个值,然后再用按钮去刷新页面,那么textbox会为空,因为没有视图状态记录到上次你输入的值。
7、web服务器控件和HTML控件的区别用法
WEB服务器控件是HTML控件的一种扩展,区别是:
1)前者可以触发服务器控件特有的事件,后者只能通过回递的方式触发服务器上的页面级事件。
2)输入到前者中的数据在请求之间可以维护(即具有状态管理功能),而后者无法自动维护数据,只能使用页面级的脚本来保存和恢复。
3)前者可以自动检测浏览器并调整到恰当的显示,而后者没有自动适应功能,必须在代码中手动检测浏览器。
4)每个服务器控件都具有一组属性,可以在服务器端的代码中更改控件的外观和行为,而后者只有HTML属性。
如果某些控件不需要服务器端的事件或状态管理功能时,可以选择HTML控件,这样可以提高应用程序的性能。
8、服务器控件和html控件的区别
首先我们说说二者的概念区别吧(相信大家都清楚)
1. asp控件是服务端控件,html是客户端控件。
2. asp控件在服务端解析后,会转化为html控件使得客户端浏览器能够显示出来。也就是说最终的产物都是html控件。
3. asp控件只有安装.netFrameWork的服务器才能解析的来,而html用Java,php,asp都可以。
那么下面说说二者的功能实现区别
1. asp控件是必须发生页面提交的(除非强制取消,见2.),而html控件则可以提交也可以不提交(通过type属性设置)
2. asp控件OnClick与OnClientClick区别:OnClientClick执行客户端事件响应(由JavaScript控制);OnClick执行服务端事件响应。
3. asp控件的 OnClick 与html控件的 OnClick 意义不同:前者由服务端事件响应,后者由客户端响应。
4. html控件加上runat="server"后,与asp控件基本无异(此时已转化为服务端控件了),服务端就可以响应html控件。
5. html控件里的属性关键字都要是小写的。所以大家要注意这些细节了,小小控件也会有大学问的,而且b/s开发较c/s开发本身就有复杂度,很多细节都是不太一样的。
二者的优先级:OnClientClick > OnClick 。
9、简述HTML控件和WEB服务器控件的区别?
WEB服务器控件是HTML控件的一种扩展,区别是:
1)前者可以触发服务器控件特有的事件,后者只能通过回递的方式触发服务器上的页面级事件。
2)输入到前者中的数据在请求之间可以维护(即具有状态管理功能),而后者无法自动维护数据,只能使用页面级的脚本来保存和恢复。
3)前者可以自动检测浏览器并调整到恰当的显示,而后者没有自动适应功能,必须在代码中手动检测浏览器。
4)每个服务器控件都具有一组属性,可以在服务器端的代码中更改控件的外观和行为,而后者只有HTML属性。
如果某些控件不需要服务器端的事件或状态管理功能时,可以选择HTML控件,这样可以提高应用程序的性能。
10、怎样用JS为服务器控件赋值
//1、JS脚本为服务器控件赋值
语法:document.getElementById('<%=服务器控件名.ClientID%>')
document.getElementById('<%=TextBox2.ClientID%>‘).value= “aaaaa” ;
<anthem:TextBox ID= "TextBox2" runat= "server" Text= "bbbbb" >< /anthem:TextBox> //这个是anthem的控件,跟asp.Net ajax框架的控件一样.
//2、JS脚本为服务器中用户控件中的控件赋值
语法:document.getElementById("<%=服务器控件名.ClientID%>"+"_用户控件中控件名")
document.getElementById( "<%=UserInfoControl1.ClientID%>"+"_txtBAname").value= “aaaaa” ;
页面使用的用户控件: <uc1:UserInfoControl ID= "UserInfoControl1" runat= "server" />
用户控件代码:
<anthem:TextBox ID="txtBAname" runat="server" Width="64px" CssClass="lankuang" ></anthem:TextBox>
如果js为服务器控件Lable赋值的话,语法为:
document.getElementById("<%=CaseControl1.ClientID%>"+ "_lblZhusu").innerHTML= "aaaaaaa" ;
但是由于label映射到客户端是Div标签,所以后台取的还是原来的值