我在一個控件上調用一個ASP.NET Ajax方法(例如一個標記爲[Ajax.AjaxMethod]
的方法),該控件在用戶點擊一個鏈接時動態地用JavaScript創建(基本上它在一個表內,並且當鏈接被點擊時tr/td在JS代碼中構建並添加到表中)。在回調函數中,我需要知道哪個行被調用,因爲我只將數據附加到該行中的輸入控件;我有一個隱藏字段,其中包含已添加的項目總數,但我無法使用它,因爲它總是添加到最後一個行(因爲它是在添加新行時增加的)而不是激發該函數的行。獲取對Javascript ASP.NET Ajax回調函數中調用對象的引用?
類似以下內容:
// fieldName is a lookup string...
function loadOperators(fieldName) {
MyPage.LoadOperatorsFor(fieldName, loadOperators_Callback);
}
function loadOperators_Callback(response) {
var currentRow = // how to obtain this?
// do other stuff here...
}
我也使用jQuery,但方法在ASP.NET AJAX風格的定義,因爲它是我們在工作中使用當前樣式。
我怎樣才能確定實際的行是發射Ajax函數,所以我只填充該行中包含的下拉列表(我不能依賴用戶創建一行,然後填充該行;他們可能創建5行,然後返回第2行並選擇一些內容,所以我必須知道他們在第2行中選擇了一個值,而不是3/4/5)?它似乎不是響應對象的一部分,但回調函數似乎沒有采用任何附加參數。
我能想到的唯一的事情就是將它添加到我的AjaxMethod中,以便它可以在響應中傳回,但是由於我返回一個DataSet並且行號沒有方向,所以這看起來好像是一個黑客關於數據。
我忘了補充,我不使用ASP.NET AJAX庫,只有jQuery和與[Ajax.AjaxMethod]
將當前行從服務器傳遞到您的ajax回調中 – Raynos 2011-04-01 15:54:11
除非我在我編輯的最後一段中說到,否則當前行只存在於客戶端而不是服務器端。 – 2011-04-01 15:55:41