zoukankan      html  css  js  c++  java
  • 如何利用JS实现对后台CS代码的调用

             要求是这样的:在gridView中有些行是没有处理过的,用户用鼠标点击该行后即表示用户处理过这一行了,行的状态要和普通的一样了,但是GridView没有对行的事件处理,必须要用JavaScript对后台的事件进行调用,如果细心的话你会发现实际上在我们在页面上添加一个LinkButton并给它添加一个事件之后,实际上就是通过JavaScript进行的回传。
          当我们添加一个LinkButton,生成页面并查看源代码,会发现比没有添加LinkButton之前多了些代码

    <div>
    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
    </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>


    而LinkButton的事件实际上就是JavaScript事件

    <a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton</a>

    那么如果有了上面的这部分JavaScript是不是我可以利用JavaScript进行回传呢?
    当然可以了,但是我们有一点需要注意一下,我们需要修改页面的一个属性EnableEventValidation,默认是true,我们把它修改成false,即页面中使用 <%@ Page EnableEventValidation="false" %>否则会报错。
    下面是我利用Html控件进行的回传调用LinkButton的事件

    <input id="Button1" type="button" value="button" onclick="__doPostBack('LinkButton1','')" />

    如果那天需要利用JS进行回传了,而页面中有没有可以添加后就生成这些代码的控件,那就把把上面的代码拷到页面了不就成了吗,:-)
    注意这个方法可以调用已经存在的控件的事件。不能调用方法,不知道有没有别的方法可以实现。

  • 相关阅读:
    1063. Set Similarity
    A1047. Student List for Course
    A1039. Course List for Student
    最大公约数、素数、分数运算、超长整数计算总结
    A1024. Palindromic Number
    A1023. Have Fun with Numbers
    A1059. Prime Factors
    A1096. Consecutive Factors
    A1078. Hashing
    A1015. Reversible Primes
  • 原文地址:https://www.cnblogs.com/interboy/p/731821.html
Copyright © 2011-2022 走看看