冯东的博客

每天学一点,不断进取
posts - 76, comments - 269, trackbacks - 7, articles - 4
  博客园 :: 首页 :: 新随笔 ::  :: 订阅 订阅 :: 管理

如何利用JS实现对后台CS代码的调用

Posted on 2007-04-29 09:23 冯东 阅读(1853) 评论(3)  编辑 收藏 所属分类: ASP.NET/C#

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

Feedback

#1楼    回复  引用  查看    

2007-05-11 11:41 by teracy_cai      
请问这个例子的效果与直接点击'LinkButton1'有什么区别呀,不是多的一个吗?

我们现在要研究的是怎么不依赖这个'LinkButton1'直接调用我想要调用的方法呢??

#2楼 [楼主]   回复  引用  查看    

2007-05-14 08:27 by 冯东      
@teracy_cai
兄弟,你可能没细看
注意这个方法可以调用已经存在的控件的事件。不能调用方法,不知道有没有别的方法可以实现。
我只是拿LinkButton做个例子,如何利用JS对CS进行调用,比如我上面说的有需求需要点击GridView的行触发事件,GridView本身没有点击行而触发的时间,所以用JS来调用它的事件

#3楼    回复  引用    

2008-04-17 20:25 by 冷明军 [未注册用户]
可以给一个完整的例子给我吗?lengmbo@163.com 谢谢

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: