我使用jQuery插件tablednd如何在asp.net中使用javascript調用函數?
$(document).ready(function() {
$('#mygridview').tableDnD();
})
,使我在GridView控件拖動我行。 當我拖動一行時,我想調用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++);
});
的tablednd的啓動上面。
謝謝!
的可能重複[調用ASP.NET功能從JavaScript?](http://stackoverflow.com/questions/3713/call-asp-net-function-from-javascript) – 2015-03-03 09:31:55
我得到的錯誤:向我的Page類添加IPostBackEventHandler {}時,所有類中的期望類,委託,枚舉,接口或結構。你知道爲什麼? – 2015-03-03 09:43:09
問題在於這種方法。你*不應該使用gridview和ajax更新。如果你想使用'tableDND',你應該用ajax調用來填充表格。因爲gridview的數據綁定是服務器端事件,而tableDnD中的更新是客戶端事件。 – naveen 2015-03-03 10:11:49