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

  • 相关阅读:
    swift网络数据请求方法
    使用jQuery在javascript中自定义事件
    javascript循环事件只响应最后一次的问题处理
    关于PHP 时区错误的问题
    安装MySql出现Error Nr.1045的解决办法
    view的阴影效果shadowColor
    关于Swift中的泛函数find的问题
    [BZOJ3196][Tyvj1730]二逼平衡树
    [BZOJ4671]异或图
    [BZOJ4621]Tc605
  • 原文地址:https://www.cnblogs.com/top5/p/1632377.html
Copyright © 2011-2022 走看看