zoukankan      html  css  js  c++  java
  • javascript 客戶端触发服务器端事件

    private void Page_Load(object sender, System.EventArgs e)
    {
    this.txtMediaDate.Attributes["onblur"] = "__doPostBack('"+this.LinkButton1.ClientID+"','')";
    this.LinkButton1.Attributes.CssStyle["display"]="none";
    this.LinkButton1.Click +=new EventHandler(MediaDate_LostFocus);
    }
    private void MediaDate_LostFocus(object sender, EventArgs e)
    {
    Response.Write("wlsadfl");
    }  

    http://blog.csdn.net/kucool/archive/2007/11/22/1898116.aspx

    <div>
    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE4NDIzMDg2NDRkZMlHJoBQ9CYcWBtBK+zrfZzKoh/i" />
    </div>

    <script type="text/javascript">
    <!--
    var theForm = document.forms['form1'];
    if (!theForm) {
         theForm
    = document.form1;
    }

    function __doPostBack(eventTarget, eventArgument) {
        
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
             theForm.__EVENTTARGET.value
    = eventTarget;
             theForm.__EVENTARGUMENT.value
    = eventArgument;
             theForm.submit();
         }

    }

    // -->
    </script>
        
    <div>

    aspx中LinkButton的代码:
    <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">button1</asp:LinkButton>
    在html中的源码中被翻译成了:
    <a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">button1</a>

    上面的代码可以明显的看出,LinkButton只不过就是一个超链接,他的链接就是执行javascript语句通过调用__doPostBack函数来调用服务器端的后台代码的。因此,在有LinkButton的页面,会自动加上上面的__doPostBack函数。

    但是在我们调用__doPostBack函数时,有些时候调用这个函数会出现"对象不存在"的脚本错误? 那是因为Html里面没有__doPostBack函数体,一般在拖放那些有自动回传功能的控件时,当把他的autoPostback属性设为True,在运行的时候系统会自动添加__doPostback函数体,当然最直接的办法就是添加一个LinkButton然后把其Text属性设为空,切记不要设Visible属性,因为如果Visible=false,在翻译成Html时,直接就忽略LinkButton的存在了。

  • 相关阅读:
    webpack4 plugins 篇
    webpack4 打包静态资源
    babel 7 简单指北
    JS: 深拷贝
    JS: 数组的循环函数
    async await 的执行
    redux
    TCP通信
    理解Javascript的原型和原型链
    「译」forEach循环中你不知道的3件事
  • 原文地址:https://www.cnblogs.com/zzxap/p/2175949.html
Copyright © 2011-2022 走看看