当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net下利用JS实现对后台CS代码的调用方法

ASP.NET
ASP.net Menu控件在Google Chrome和Safari浏览器下显示错位的解决办法
最简单的.NET生成随机数函数
asp.net 相关文章实现方法
asp.net 分页潜谈
asp.net(C#) Access 数据操作类
asp.net 编程 实用语句(6条)
ASP.NET 小技巧(2个)
asp.net Excel转换为SQL Server的方法
asp.net String.Empty NULL 不同之处
asp.net 防止SQL注入攻击
aspx 页面弹出窗口代码大全
asp.net 点击按钮提交后使按钮变灰不可用
asp.net得到本地电脑基本信息的简单方法
asp.net 点缩略图弹出随图片大小自动调整的页面
asp.net treeview checkbox 相关问题
asp.net 特定目录form验证
C# CUR类实现代码
asp.net gridview中用checkbox全选的几种实现的区别
asp.net 文件下载的通用方法
解决AJAX.NET中的悬停panel在页面加载时闪烁的问题

ASP.NET 中的 asp.net下利用JS实现对后台CS代码的调用方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 130 ::
收藏到网摘: n/a

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