2009-09-05 51 views
0

我目前有一個簡單的表單,當你點擊「保存」按鈕將它堅持到數據庫。JQuery與asp.net 3.5和做post/call backs

我想使用JQuery爲我做回調,並彈出一個「保存完成」div窗口/ div某種。

我唯一的問題是如何從JQuery中調用btnSave_Click()事件?

如果我使用PageMethods,該方法必須是靜態的,因此無法訪問我的文本框和其他頁面控件?

感謝, 鵝

回答

1

你是否明確地試圖避免傳遞輸入控件的值?因爲那樣會容易得多。

使用一個輕量級的jQuery調用來完成這個帖子,但隨後期望在後面的代碼中完全控制層次結構來將數據提取出來?這裏有什麼意圖?如果你需要的話,提交頁面可能會更容易,並且註冊javascript以運行以在加載時彈出成功消息。

就我個人而言,我認爲頁面方法的路線和$ .ajax或$ .post是一個更清潔,單獨的方式來解決問題。這樣,您可以將彈出窗口顯示爲成功回調的一部分。

+0

我的意圖是使用回調和部分渲染,而不是完整的後備。該網站已經就位,所有處理提交表單數據的代碼/方法都可以正常工作。儘管以正確的方式做到這一點要乾淨得多。我真的不想重做那些包含修改代碼的一組新的迴歸測試的代碼。 真的,我只是想使用回調傳遞更少的數據,而不是每次都重新加載整個頁面。 所以我可能只是去註冊運行啓動的方式......但我怎麼會用UpdatePanels做到這一點? Thx – Goosey 2009-09-06 00:53:13

+0

我得到它的工作,因爲我想通過使用您提到的方法...並只爲任何其他人嘗試這一點確保在UpdatePanel中使用ScriptManager.RegisterStartupScript()而不是ClientScript.RegisterStartupScript()。 – Goosey 2009-09-06 01:01:03

0

可以使用的OnClientClick

+0

這將調用我的JS函數,後者又調用我的PageMethod,它聲明爲靜態,並且無法訪問頁面控件,我可以通過JQuery獲取所有表單數據,但寧可通過代碼實現,背後。 – Goosey 2009-09-05 21:56:22

0

看一看的jQuery Form Plugin,它可以改變現有的形式進入阿賈克斯的形式。

+0

感謝您的鏈接。實際上我只是將AJAX添加到現有的asp.net表單中。我所有的代碼隱藏的邏輯和方法已經存在,並且正如我所希望的那樣工作。 我只是想能夠用回調(updatepanels)而不是完整的回發,然後如何一個很好的jQuery的彈出窗口,說「已保存」或什麼的。 我想我可以從我的代碼後面調用我的JS而不是其他方式? – Goosey 2009-09-05 22:14:52

0

如果您想使用相同的處理程序,則需要將__EVENTTARGET設置爲您想要模擬的控件的id。我似乎還記得,還必須用美元符號替換下劃線,但我可能會錯誤的。隱藏的輸入__EVENTTARGET__EVENTARGUMENT被框架用來識別哪個控件導致了回發。關於這個blog post中的服務器端問題有一個很好的討論,雖然它沒有談論AJAX。 Google for __EVENTTARGET and postback欲瞭解更多信息。

+0

感謝您的回覆,雖然這在技術上是正確的,但它不是我正在尋找的東西,我問了錯誤的問題,但您仍然給出了正確的答案。 – Goosey 2009-09-06 01:02:12