如何使用javascript调用asp.net中的函数
本文关键字:函数 net asp 何使用 javascript 调用 | 更新日期: 2024-09-22 13:41:13
我正在使用jquery插件tablednd
$(document).ready(function () {
$('#mygridview').tableDnD();
})
让我在网格视图中的行变得可拖动。当我拖动一行时,我想调用asp.net中的一个函数来保存行的位置。但我在gridview上找不到一个只对点击一行做出反应的适当事件。
tableDnd中有一个onDrop方法。
$(document).ready(function () {
$('#mygridview').tableDnD({
onDrop: function(table, row) {
});
})
但是我怎么能从那里调用asp.net方法呢?我读过一些关于ajax的文章,但我不明白。
我也读过关于使用PageMethods
的文章,但它没有调用我的函数。
问题是,我如何编写能够对数据库中的表执行更新的内容?
更新:
我使用IPostBackEventHandler方法解决了这个问题。
我不得不用IPostBackEventHandler扩展我的用户控件和页面然后在用户控件和页面上添加了public void RaisePostBackEvent(string eventArgument)函数。最后:
onDrop: function (table, row) {
__doPostBack('<%= this.UniqueID %>', 'Select');
}
如果有人对onDrop有问题,解决方案是你必须像这样给每一行提供ID:
var i = 0;
$("#<%= gridviewID.ClientID %>").find('tr').each(function () {
$(this).attr('id', i++);
});
在表dnd的启动之上。
谢谢!
通常有两种方法,一种使用AJAX,另一种使用回发。
AJAX方式:
-
将ScriptManager添加到页面中,如下所示:
<asp:ScriptManager runat="server" ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" />
-
使服务器端方法作为公共静态方法调用。还可以使用System.Web.Services.WebMethod属性对其进行标记,如下所示:
[WebMethod] public static string DoServerStuff(string parameter) { return "Parameter passed: " + parameter; }
-
从客户端通过PageMethods类调用它,如下所示:
function doClientStuff() { var result = PageMethods.DoServerStuff('test parameter'); alert(result); }
-
要使用jQuery做同样的事情,请查看以下内容。
回邮方式:
- 使页面(包含要调用的方法)实现IPostBackEventHandler接口
-
在客户端调用__doPostback方法,如下所示:
function doClientStuff() { var result = __doPostBack('<%= this.UniqueID %>', 'Select'); }
-
在页面的IPostBackEventHandler.RaisePostBackEvent方法中实现服务器端逻辑。
-
关于从客户端引发回发的更多信息,请点击此处。