2012-04-02 79 views
2

我知道這已被問到,但沒有一個答案符合我的情況。所以我會謙虛地問,是否有人可以輕輕地再次走過我。來自javascript的c#函數後面的調用代碼

環境:使用c#,javascript,jquery,sql server和實體框架的.net 4 web應用程序。

問題:我需要能夠允許用戶將一個值「快速添加」到綁定到下拉框的表中,而不會丟失用戶已經輸入到當前頁面的值。我不在乎是否必須做回發或使用jQuery或使用Ajax等。我需要功能第一 - 以後的漂亮...如果你喜歡繼續閱讀,下面描述場景。儘管如此,我很樂意爲此讓用戶順利,而不是「笨拙」。

場景: 我有一個頁面,用戶可以進入的許多信息到文本框,靜態下拉框,下拉綁定到將都得到合併,並插入到一個表中的其他表盒。那麼,它永遠不會失敗,用戶可能會填寫頁面,當他們到達一個表綁定的下拉框 - 一個值丟失或他們還沒有添加項目。我想添加一個按鈕或鏈接,或者在該下拉框旁邊添加一些內容,以便用戶「快速添加」一個項目到填充該下拉框的表格中,然後刷新下拉框,以便他們可以選擇從列表中獲得新的價值......而不會丟失他們已經輸入的屏幕上的其他數據。

我試過的東西: -Try WebMethod選項。目前,這個網頁在後面的代碼中調用一些自定義的「綁定」方法來填充下拉框,使得它們不是直接從實體框架中的對象填充。因此,這意味着使用靜態方法不適用於解決方案,因爲靜態函數的一部分需要調用bind方法來刷新具有新插入值的下拉框。

-Try PageMethod選項。其他一些示例使用了頁面方法設置,但我的網站使用了主頁和內容頁面,並且帖子似乎聲明頁面方法路線不起作用。

有意義嗎?

回答

0

將一個UpdatePanel添加到頁面。更新面板應包裝要添加的下拉列表,以及用於向該下拉列表中添加新條目的文本框/按鈕。如果適用,您可能希望爲每個下拉/按鈕對設置不同的UpdatePanel。

當他們單擊更新面板內的按鈕時,您可以閱讀文本框,向下拉列表中添加額外的項目,並向數據庫發送更新。 (我會手動將新值添加到下拉列表中,而不是更新數據庫並重新綁定,如果可能的話,但可能不會)。

UpdatePanels的魔力將確保這是全部異步的並且所以不會打擾在頁面上工作的用戶。

+0

我喜歡這一點...更進一步 - 如果我使用某種類型的對話框或彈出式菜單,彈出一個模式對話框,其中包含一個輸入名稱的文本框(該表格的關鍵字僅爲「名稱」)...通常是jQuery或什麼的JavaScript ...最好把這個名字放在一個隱藏的領域,並從功能後面的代碼引用它?或者只是在「快速添加區域」的窗體上的某個地方放置一個文本框,然後使用asp:button單擊事件並處理所有內容......使用updatepanel ...? – 2012-04-02 20:19:38

+0

我可能在隱藏div的文本框/按鈕,然後有一個鏈接,點擊時顯示div。如果有人有適當的動機,他們可以讓這個div浮動模式彈出式的東西。在這一點上,它是客戶端的所有花哨的JavaScript,並沒有改變這裏的底層策略。請記住,這個浮動div在更新面板內部定義非常重要,並且不需要在更新面板「內部」的東西不是它的子項。 – Servy 2012-04-02 20:23:46

+0

好 - 有道理 - 功能優先..以後閃.. 至於添加項目首先下拉首先或數據庫..我必須首先將它添加到數據庫,所以當它在下拉框中,它有一個數據庫鍵作爲其綁定此表與數據庫中的其他人的選項值。 – 2012-04-02 20:26:26

相關問題