Asp.Net的控件如何与Server交互

2016-02-19 17:56 5 1 收藏

今天图老师小编要跟大家分享Asp.Net的控件如何与Server交互,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - Web开发 】

  以前写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();
              }
        }
  }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  以上只是把自己在学习工作过程中的一些体会记录如此,防止自己忘记了。
  也望和大家多多交流!

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  http://www.cnblogs.com/maplye/archive/2006/08/29/489338.html

来源:http://www.tulaoshi.com/n/20160219/1616426.html

延伸阅读
利用ASP.NET输出指定内容的WORD、EXCEL、TXT、HTM等类型的文档很容易的。主要分为三步来完成。  一、定义文档类型、字符编码    Response.Clear();   Response.Buffer= true;   Response.Charset="utf-8";    //下面这行很重要, attachment 参数表...
标签: ASP
  接上一节,我们这一节主要计论如何使用DataSet,在数据库中增加、修改、删除一个数据。 首先我们需要打开一个联结,我们的数据库还是用上一节的吧:) string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;"; string strComm = "select * from UserList"; ADOConnection MyC...
标签: ASP
  DataGrid的分页(2) 这里我紧接上一节,讲DataGrid的分页。在上例中,我们可以看到对于分页控制,本来已经足够了,呵呵,但是只是一个普通的分页,多没有意思,还是给它变些花样好。先讲讲上一节DataGrid控件所用的属性 <ASP:DataGrid id="DataGrid1" runat="server" AllowPaging="True" PageSize=...
标签: ASP
  我们这一节主要是要讲DataBind,这个在ASP.net中是很重要的东东,几乎所有的控件都需要它来控制数据的操作。也可以说是ASP.net的数据核心。 我们先来看一个简单的例子: <% @ Page Language="C#" % <% @ Import Namespace="System.Data" % <Script Language="C#" Runat="Server" pu...
标签: ASP
  Cookie Cookie的用法也和ASP中差不多。比如我们建立一个名为aspcn,值为飞刀的cookie HttpCookie cookie = new HttpCookie["aspcn"]; cookie.Value = "飞刀"; Response.AppendCookie(cookie); 我们取出Cookie值也很简单 HttpCookie cookie = Request.Cookies["aspcn"]; cookieValue = cookie.Value; ...

经验教程

79

收藏

81
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部