簡體   English   中英

如何使用javascript調用asp.net中的函數?

[英]How to invoke function in asp.net using javascript?

我正在使用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擴展用戶控件和頁面,然后在用戶控件和頁面上添加公共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++);
    });

高於tablednd的起始位置。

謝謝!

通常有兩種方法,一種使用AJAX,第二種使用回發。

AJAX方式:

  1. 將ScriptManager添加到頁面,如下所示:

     <asp:ScriptManager runat="server" ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" /> 
  2. 使服務器端方法稱為public static。 還要用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. 更多有關從客戶端提高回發的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM