2012-06-13 137 views
4

我想了解htmlasp.net用户控制vs服务器控制

看来(请纠正我,如果我错了!)我在我的web项目上我的aspx页上写的代码不是所有的html。相反,它们是一个由“ASP.Net”编译器运行的代码,当用户从他们的URL发出html请求时(所以,感谢runat server“编译器”了解非html标签,如<asp)。然后 - “编译器”使用此代码即时创建html页面。例如 - 这将Button转换为input

这是真的吗?如果是这样,那么什么是用户控制?

回答

4

ASP.NET有服务器端控件(如按钮,超链接,gridviews等)。这些都生成可以由C#/ VB.NET代码处理的服务器端事件(Button1_OnClick)。

<asp:Button ID="btnCopyText" runat="server" /> // Calls the server side btnCopyText code 

public void btnCopyText_Click(object sender, EventArgs e) { 

} 

HTML有自己的控件,它由客户端的浏览器(客户端)呈现。

<button onclick="copyText()">Copy Text</button> // Calls the copyText() function (Client Side) 

ASP.NET按钮在服务器端呈现,然后作为标准HTML按钮传递给客户端(如上所示)。

自定义用户控件是由程序员创建的ASP.NET服务器端控件,它可能包含多个ASP.NET服务器端控件,如GridView和按钮)。一个例子是,当点击按钮时,它会重新加载GridView中的数据。这为ASP.NET开发人员编写一个自定义控件并在需要时重用它提供了一种方法,而不是编写样板代码(重复相同的代码)。

http://msdn.microsoft.com/en-us/library/y6wb1a0e.aspx

+0

谢谢。但我认为这就是自定义服务器控件。因此,它们似乎都只是基本的服务器控制(和HTML ...)。不同之处在于它们如何实现。 – ispiro

1

asp.net是编程工具,可帮助您生成html代码快速和容易的,最终的目标是与所有其他组件需要显示像脚本,图片,Ajax调用等

完整的HTML页面

用户控件,就像一个呈现html的对象,但是您可以多次使用它,在许多不同的页面中或在同一页上使用它。

例如,用户控件可以呈现图像和产品的细节,那么如果您在中继器中使用它,则可以使用一个唯一的控件和一个循环呈现数据库的所有产品。

我在我的web项目上的aspx页面上编写的代码并非都是 html。

你在你的aspx页面上写的实际上是编程代码,asp.net解析并呈现最终的html页面。 Asp.net允许你在代码,html和其他文本中使用asp.net特殊标签和声明,将必须解析的部分与其他文本分开。

2

是的,这是真正的所有asp.net控件呈现为HTML,但RUNAT服务器告诉它的服务器控件。

用户控件是一种类似ASP.NET网页的复合控件 - 您可以将现有的Web服务器控件和标记添加到用户控件,并为控件定义属性和方法。然后,您可以将它们嵌入到ASP.NET网页中,作为一个单元使用。