我的問題是關於從客戶端動態生成的HTML/JavaScript調用服務器端事件(例如DeleteClicked)。我在我的網站上有一個現有的網頁,它深深植根於.net。頁面生命週期非常複雜,可以從頁面中觸發幾十個事件。動態添加客戶端腳本/ HTML調用服務器端事件
我們希望開始利用一些JQuery功能,並在頁面已經加載後添加額外的鏈接和按鈕。例如,我們希望在某些圖像上顯示一些懸停圖形。小圖標可以提供刪除,編輯等功能。我希望將這些客戶端創建的點擊事件綁定到服務器端事件,而不必顛覆(或繞過)整個頁面生命週期。
到目前爲止,我能想到的唯一解決方案是在整個頁面中植入隱藏的asp.net控件,並在客戶端代碼中手動強制隱藏控件上的click()。不幸的是,我不認爲這是可以接受的,因爲我不一定知道載入頁面時可能需要調用的所有事件。我也不喜歡向客戶發送大量不需要的標記。
我的問題有意義嗎?任何幫助將不勝感激!
使用WebMethods的問題是它可能會改變我的頁面綁定到的基礎數據。如果我然後從asp.net控件中觸發事件(在其他AJAX調用並命中WebMethod之後),則此事件可能無效,因爲控件可能不再存在。我需要一種方式讓我的動態html/javascript使用常規頁面生命週期。 WebMethods是「真正的AJAX」並繞過了頁面生命週期。 – jakejgordon 2009-08-12 13:05:07
如果您將'onsuccess'javascript處理程序掛接到您的web方法調用,則可以在事件通過web方法成功完成後使用javascript/jquery更新控件。你也可以掛鉤失敗的JavaScript處理程序,這樣如果調用失敗,你可以執行任何需要的清理。 – 2009-08-12 13:44:00
這可能會變得更加溫暖......我能看到的唯一明顯的問題是,我們基本上必須對服務器執行2個請求來處理這些操作之一 - 一個執行WebMethod操作,onsuccess我們基本上必須重新加載頁面(或適當的更新面板)。 – jakejgordon 2009-08-12 14:52:31