以前写asp的程序的时候,知道只有type设置为submit的按钮,才能触发表单提交数据给服务器端。
如:Asp.Net中的Button就是等于<input type="submit">.
但是现在Asp.Net的好多控件都可以任意的和服务器端交互,如:LinkButton.
这是怎么实现的呢?
难道是一种全新的方式吗?
其实,这只是微软的一种变通的方式。
我们先来看看客户端的代码是如何的.
我这里是一个带有LinkButton的页面,
其实LinkButton在客户端就等于html里的A.
我们来看看LinkButton为什么也能和服务器端交互?
当我们点击右键查看该页面的源代码时,看到:
<script type="text/javascript">
<!--
var theForm = document.forms['ctl00'];
if (!theForm) {
theForm = document.ctl00;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>
<a id="simpleLinkButton1" href="javascript:__doPostBack('simpleLinkButton1','')">Click Me</a>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
从上面的代码中就可以看出simpleLinkButton1是一个链接,通过客户端代码来提交所在的表单。
而其中两个隐藏域,则用来交换数据的,就是把__doPostBack的两个参数值赋给这两个隐藏域。
这就是为什么LinkButton也具有提交数据的最直观的原因。
那么这上面的代码是怎么生成的呢?
我们看LinkButton的源代码就可以清楚地知道:
protected internal override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if ((this.Page != null) && this.Enabled)
{
this.Page.RegisterPostBackScript();
if ((this.CausesValidation && (this.Page.GetValidators(this.ValidationGroup).Count > 0)) || !string.IsNullOrEmpty(this.PostBackUrl))
{
this.Page.RegisterWebFormsScript();
}
}
}
以上只是把自己在学习工作过程中的一些体会记录如此,防止自己忘记了。
也望和大家多多交流!
分享到:
相关推荐
2. **控件事件处理**:掌握ASP.NET控件的事件模型,如何绑定事件处理函数,以及在不同阶段触发的事件。 3. **视图状态和隐藏字段**:理解视图状态的作用,如何保持页面间的数据,以及何时使用隐藏字段来传递信息。 ...
ASP.NET控件是构建Web应用程序的核心元素,它们提供了一种直观的方式来交互和处理用户输入。在ASP.NET中,控件可以分为服务器控件、HTML控件和Web自定义控件等类型。本练习主要涵盖了ASP.NET中的多种控件及其应用,...
ASP.NET与SQL Server之间的通信通常通过ADO.NET实现,这是.NET Framework的一部分,提供了连接、命令执行、数据读取和事务处理等功能。开发者会编写SQL语句来插入、更新、删除和查询数据库中的联系人记录。同时,ASP...
在ASP.NET14中,ADO.NET控件是网页设计者和开发者的重要工具,它们允许直接在网页上与数据库进行交互,无需编写大量后端代码。这些控件简化了数据绑定、数据操作和用户界面的设计,使得Web应用的开发更加高效。 1. ...
5. ASP.NET控件:如GridView、FormView等,用于显示和编辑数据库中的数据。 6. 用户验证和授权:使用ASP.NET的身份验证和授权机制,如Forms Authentication和Role Management,确保网站的安全性。 7. 页面生命周期和...
在这个教学日历管理系统中,ASP.NET主要负责处理用户请求,生成动态网页,并与数据库进行交互。 SQLSERVER,全称Microsoft SQL Server,是微软公司的一款关系型数据库管理系统,广泛应用于数据存储、查询和管理。在...
ASP.NET是微软公司推出的一种用于构建Web应用程序的框架,它基于.NET Framework,提供了丰富的服务器控件、事件驱动模型以及强大的编程模型,使得开发者可以轻松创建交互性强、功能丰富的网页应用。在ASP.NET中,你...
ASP.NET控件是开发Web应用程序的核心元素,它们允许开发者创建交互式的用户界面。这些控件主要分为两类:Web服务器控件和HTML控件。 **Web服务器控件**是ASP.NET框架的一部分,它们以`asp:`前缀开头,比如`asp:...
3. ADO.NET与SQL Server交互:理解ADO.NET的核心组件,如Connection、Command、DataAdapter和DataSet,学习如何编写SQL语句进行数据操作,以及如何处理事务。 4. LINQ to SQL:介绍LINQ(Language Integrated Query...
ASP.NET控件与组件开发是Web应用程序开发中的关键部分,主要涉及如何在.NET框架下创建和使用自定义的用户界面元素。在这个领域,开发者能够利用ASP.NET提供的强大功能来构建高度交互性和动态的Web应用。以下是一些...
在ASP.NET Web Forms中,开发者可以通过拖放控件和编写事件处理代码来创建交互式的网页。而MVC模式则更强调分离关注点,使得开发者可以更好地控制应用程序的结构,更适合大型、复杂项目。Web Pages则提供了一种更轻...
3. **控件事件处理**:ASP.NET中的控件支持多种事件,如按钮点击、文本框更改等,通过编写事件处理程序可以实现用户交互。 4. **数据绑定**:ASP.NET提供了多种数据绑定机制,如DataGrid、Repeater和ListView,它们...
描述提到的"sql server分页存储过程 ASP.net 控件,网上着的"进一步确认,这个压缩包包含了一个使用ASP.NET控件和SQL Server存储过程来实现数据分页的实例。 在ASP.NET中,分页是一种常见的网页显示大量数据的方法,...
【标题】"网站留言本(asp.net与sqlserver 2005)"是一个基于ASP.NET技术构建的网站应用,用于实现用户在网站上留言和交互的功能。此项目结合了微软的.NET框架与SQL Server 2005数据库管理系统,为用户提供了一个...
在本书中,读者将学习到如何设计和构建数据库模型,使用ASP.NET创建用户界面,以及如何通过ASP.NET和SQL Server之间的交互处理用户请求和数据操作。此外,可能还会涉及到ASP.NET的安全特性,如角色管理和身份验证,...
开发者可以通过ASP.NET的控件库,如TextBox、DropDownList和GridView,快速构建用户界面,并通过代码-behind文件处理用户交互,执行业务逻辑。 SQL Server是微软的一款关系型数据库管理系统(RDBMS),具备强大的...
4. **ADO.NET**:ASP.NET与SQL Server之间的通信主要通过ADO.NET实现。理解DataSets、DataTables、DataAdapters以及Command对象的用法,可以进行数据的检索、添加、更新和删除操作。 5. **Entity Framework**:作为...
5. **模板与样式**:个人博客往往需要个性化的设计,ASP.NET 支持服务器控件和CSS样式,允许开发者自定义页面布局和视觉效果。 6. **安全与性能优化**:ASP.NET 提供了多种安全特性,如输入验证、防止SQL注入、跨站...
ASP.NET控件是构建Web用户界面的基本元素,它们负责呈现HTML元素,并处理用户交互。控件可以分为服务器控件和HTML控件两大类。服务器控件在服务器端运行,具有丰富的功能和事件处理机制;而HTML控件则更接近于传统的...
ASP.NET控件支持多种数据绑定方式,如`DataSourceID`和`DataBind()`方法,可以方便地将控件与数据库或其他数据源连接,动态生成选项。 8. **事件处理** ASP.NET下拉多选控件通常有多个内置事件,如`...