HTML服务器空件和WEB控件的区别是什么?

HTML服务器空件和WEB控件的区别是什么?,第1张

一个HTML服务器控件的属性集,与对应标签的常用属性集匹配。控件具有InnerText\InnerHtml\Style和Value等属性,一级Attributes等集合特征。每次在页面来源中发现标记了runat="server"的HTML标签时,ASPNET运行库就会自动地创建对应的HTML服务器控件的实例。 现有的HTML服务器空间集并没有涵盖任一给定版本的HTML模式所有可能的HTML标签。只有最常用的标签才进入SystemWebUIHtmlControls命名空间。<iframe>、<frameset>、<body>、<hn>等标签,一级<fieldset>、<marquee>和<pre>等最不常用的标签,都被省去了。 然而,对于在服务器上使用和配置的那些标签,缺乏一种专用的服务器控件并不会限制你的编程能力。我们只需要使用一个更一般的编程接口---HtmlGenericControl类。 2Web服务器控件 Web服务器控件比HTML服务器控件具有更多特征。Web服务器控件不仅包括按钮和文本框等输入控件,而且还包括专用控件,例如日历、下拉列表、TreeView和DataGrid。Web服务器控件还包括一些非常像HTML服务器控件的组件。但是Web服务器控件比对应的HTML服务器控件更抽象,因为他们的对象模型不一定反应HTML语法。例如,让我们比较一下HTMl服务器控件和Web服务器TextBox控件。 Html服务器文本控件具有如下标记:

<input runat="server" id="firsName" type="text" value="dino" /> Web服务器TextBox控件具有如下标记:

<asp:textbox runat="server" id="firstName" text="dino" /> 这两个控件都生成相同的HTML标记代码。然而,HTML服务器文本控件的编程接口非常接近HTMl<input>标签的编程接口,而Web服务器TextBox控件的方法和属性以一种更抽象的方式进行命名。例如,为了设置HTMl服务器文本框的内容,必须使用Value属性,因为Value是对应的HTMl属性名。如果使用Web服务器TextBox控件,则必须设置Text属性。

首先要明白的是,当你按了类似Button按钮,将页面重新发给服务器后,服务器处理你的页面的过程是:它会重新初始化你第一次请求的那个页面,就是说尽管你第一次请求页面后对这个页面做了许多其他的操作,比如说该页面有让用户随意转换文章字体的功能,你按了个标签使文章字体改变了,之后又有操作按了Button按钮将页面回发给服务器,让它处理你的Button事件,此时服务器重新初始化你的那个页面,该页面只是你第一次请求时的状态(即未改变文章字体的状态),但是为何服务器处理了你的Button事件,将网页回发给你后,文章的字体的确还是你之前自定义的字体呢?不是初始化页面的时候只是回到你第一次请求的状态吗?这就是viewstate的功能。在服务器初始化页面后,它会读取隐藏在你回发的页面中的viewstate,从中读取相应信息,在服务器端将文章字体变为你当初自定义的字体。 你的例子中,当在TextBox中输入文字后,传给服务器,服务器当然还能获得你的输入,唯一不同的是,如果你禁用了视图状态,那么当页面再次发给你的时候,你的TextBox就是空的了。而若没有禁用,当页面再次回发给你的时候,TextBox中仍然保留你上次的输入值。

访问地址一般默认都是:localhost:8080/项目名称 或者 127001:8080/项目名称。 发布方法: 1通过eclipse or myeclipse 将jsp项目部署到tomcat下,然后启动tomcat,访问地址即可。 2通过eclipse 或者myeclipse将jsp项目以war包形式导出,然

TextBox控件会被Render成 html 中的 inpu type="text" 控件, 其 AutoPostBack 是通过 input 的DOM事件 onchange 来实现的。以下是 net 35 中 TextBox 生成的 html: <input name="TextBox1" type="text" onchange="javascript:setTimeout('__doPostBack(\'TextBox1\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="TextBox1" />而客户端事件 onchange 只在手动修改文本框的值后才会触发,用脚本修改值并不触发该事件。而你用的日历控件恰恰是通过 javascript 脚本来给文件框设置值的,所以不会有 onchange 事件触发,也就不会回发页面。 变通的实现方法是在日历控件的脚本中设置完文本框的值后调用下文本框的onchange,简单的可以通过 documentgetElementById(textbox_id)onchange(); 实现, textbox_id即你传给 new CbsCalendar() 的参数也就是文本框的客户端id。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » HTML服务器空件和WEB控件的区别是什么?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情