簡體   English   中英

如何在ASP.NET Web表單中動態添加數據條目表單

[英]How to dynamically add a dataentry form in asp.net webforms

我必須在asp.net網絡表單中創建一個數據輸入表單,用戶可以在其中輸入幾個成員詳細信息。 每個成員詳細信息將包含大約20個數據項,例如FirstName,Lastname,DateOfBirth等。輸入的成員數量可以從20個不等。

一旦所有成員都進入或在進入過程中,他們應該能夠轉到上一個或下一個條目並進行更改。 本質上,應該有一個遍歷頁面的“下一個”和“上一個”按鈕。 最后,單擊“保存”按鈕,應保存所有輸入的數據。

我創建了一個UserControl,其中包含所有用於輸入數據的文本框。 我創建了五個硬編碼面板,這些面板顯示了五次usercontrol。 這使得可以輸入的成員總數為5。

單擊下一個按鈕時,我想用動態添加的面板替換此硬編碼模型。

請讓我知道如何實現。 或者,如果有更好的體系結構,請告訴我。 我嘗試了向導控件,但是在維護先前輸入的值以及使用“下一個”和“上一個”按鈕遍歷數據時,這太麻煩了。

謝謝

您可以使用以下方法將控件動態添加到頁面:

Page.Controls.Add(new MyControl());

您將不得不為在控件中輸入的數據(例如會話)找到一個臨時存儲。

Session["addedControls"] = myControls;

您可以跟蹤它們添加的控件的數量,然后循環遍歷並將所有數據保存到您正在使用的永久存儲中。

這里有一個示例: http : //howto.jamescarnley.com/2008/05/adding-fields-dynamically-in-aspnet.html

將整個控件存儲在會話中確實有它的缺點,例如所涉及的開銷,您可以只存儲效率更高但實現起來需要一點努力的數據。 如果他們啟用了Cookie,這也將起作用。

或者,您可以為他們提供一個下拉列表,以選擇他們希望創建的條目數,並通過調用Page.Controls.Add所需次數來顯示該控件數。 然后只需將它們全部批量保存。

您可以動態地添加所需的控件,以便在javascript中足夠容易地輸入新成員。 你的提議聽起來對我來說就像一場噩夢。 我將放置一個帶有控件的頁面以添加成員和“添加成員”按鈕。 單擊“添加成員”按鈕時-我會將成員保存到數據庫中,檢索在此會話中添加的成員列表-並在頁面“添加成員”區域右側的列表中顯示成員的名稱。 如果他們要查看成員,則可以單擊其名稱,然后您可以顯示該成員准備進行編輯。 或者他們可以添加另一個成員,直到完成為止。 您試圖做的事情將是一場噩夢,而用戶使用起來將變得更加容易。

使用動態控件將非常困難且不友好,因為它可能需要刷新頁面或使用更新面板

在您的情況下,我建議您使用Knockout從JavaScript進行所有操作,這是完整的Knockout網格示例

確保在添加或編輯網格后,您將使用JSON.Stringify將JavaScript對象序列化為字符串,並將此文本添加到隱藏字段中。

提交表單時,只需獲取隱藏字段值,使用newtonsoft json庫將字符串轉換為對象,並免費使用該對象即可,該對象將是您的模型列表(例如:Order)。

與動態控制器相比,這更易於管理且用戶友好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM