[英]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方式:
將ScriptManager添加到頁面,如下所示:
<asp:ScriptManager runat="server" ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" />
使服務器端方法稱為public static。 還要用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同樣的事情,檢查這出。
回發方式:
像這樣調用客戶端上的__doPostback方法:
function doClientStuff() { var result = __doPostBack('<%= this.UniqueID %>', 'Select'); }
在頁面的IPostBackEventHandler.RaisePostBackEvent方法內實現服務器端邏輯。
更多有關從客戶端提高回發的信息 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.