如何使用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的启动之上。

谢谢!

如何使用javascript调用asp.net中的函数

通常有两种方法,一种使用AJAX,另一种使用回发。

AJAX方式:

  1. 将ScriptManager添加到页面中,如下所示:

    <asp:ScriptManager runat="server"
           ID="ScriptManager1" 
           EnablePageMethods="true"
           EnablePartialRendering="true"
    />
    
  2. 使服务器端方法作为公共静态方法调用。还可以使用System.Web.Services.WebMethod属性对其进行标记,如下所示:

    [WebMethod]
    public static string DoServerStuff(string parameter)
    {
        return "Parameter passed: " + parameter;
    }
    
  3. 从客户端通过PageMethods类调用它,如下所示:

    function doClientStuff() {
        var result = PageMethods.DoServerStuff('test parameter');
        alert(result);
    }
    
  4. 要使用jQuery做同样的事情,请查看以下内容。


回邮方式:

  1. 使页面(包含要调用的方法)实现IPostBackEventHandler接口
  2. 在客户端调用__doPostback方法,如下所示:

    function doClientStuff() {
        var result = __doPostBack('<%= this.UniqueID %>', 'Select');
    }
    
  3. 在页面的IPostBackEventHandler.RaisePostBackEvent方法中实现服务器端逻辑。

  4. 关于从客户端引发回发的更多信息,请点击此处。