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

Leo_wangbaby

Leo_wangbaby

2016-02-19 17:56

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

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

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

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

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)
展开更多 50%)
分享

猜你喜欢

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

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

ASP.Net 分页控件源码

Web开发
ASP.Net 分页控件源码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Ajax在.NET中与Server控件的交互

Web开发
Ajax在.NET中与Server控件的交互

ASP.Net 2.0 图形控件简述

Web开发
ASP.Net 2.0 图形控件简述

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ASP.Net基础学习 HTML控件简单介绍

Web开发
ASP.Net基础学习 HTML控件简单介绍

Asp.Net控件加载错误的解决方法

ASP
Asp.Net控件加载错误的解决方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

getUTCSeconds 方法

getUTCSeconds 方法

将阿拉伯数字转成中文字的程式

将阿拉伯数字转成中文字的程式
下拉加载更多内容 ↓