簡體   English   中英

在Web表單中重復信息-Asp.Net

[英]Repeating Information in a Web Form - Asp.Net

我正在構建一份就業申請表,該表將數據提交給我的公司的數據庫。

在創建此表格時,引起我注意的一件事情是,當我創建就業歷史部分時,我以為自己,大多數申請人都將在此處輸入各種信息,並制定一套必要的信息。過去的3位雇主對於目標潛在客戶群是一成不變的。 一些人可能只有一份以前的工作,其他人可能有十份或更多。 另外,為這些信息創建大量字段不僅看起來令人討厭,而且在數據庫開發領域中也是一種不好的做法。 所以...

我想做的是,就像我在Access數據庫中所做的一樣,是子窗體背后的理論,在該窗體中,當用戶開始添加輸入數據時,該窗體進行自我復制,從而使另一組數據字段可用次數多達用戶需求。 這樣,僅存儲數據,而不存儲空白空間。

盡管在Microsoft Access中這是相當簡單的做法,但我發現Asp.Net Web表單和SQL以完全不同的方式處理此過程以實現相同的目標。

我對此主題進行了一些研究,發現有很多方法可以解決此問題,而我發現的大多數事情對於如何解決都非常模糊。 因此,我與您聯系。

如何添加一組重復字段來處理以前的工作經驗? 為了簡單起見,可以說我們有三個字段:“雇主”,“主管”和“工作”。 我們還假設這三個字段的添加將在用戶單擊並添加按鈕之后進行。 為了使這三個字段在asp.net Web表單上重復所需的次數,我需要做什么?

在ASP.NET頁中有很多用於重復信息的選項,下面是其中的一篇文章:

ASP.NET中的數據中繼器控件

我工作的地方是.NET遺留應用程序,大多數UI都是使用Web窗體構建的。 最近,在我使用AngularJS實現的此應用程序中,我對UI的要求與您相似。

我給出了這個答案,知道它不是純粹的Web窗體答案,但是它可以在您現有的Web窗體中實現,所以我認為它仍然有效。

構建用於提交JSON數據的控制器(控制器,ApiController甚至是.ashx“通用處理程序”),該數據包含適用於此特定用戶提交操作的所有數據。 使用純html和AngularJS(google'ng-repeat')在此Web窗體頁面中構建UI組件。您將看到大量可以應用於您的情況的示例。 這次不要實際使用Web窗體標記。 您的可重復元素應綁定到前端的數據。 當用戶單擊加號按鈕以添加更多工作歷史記錄時,您將添加到該數據中,並且Angular會重復您想要的塊。

將您的新html表單的提交動作掛接到您創建的控制器上(在表單上使用ng-submit指令或在某些Submit元素上使用ng-click指令)。 如果您知道如何處理數據,並且到目前為止已經學到了,則應該從這里開始。 如果您需要更多幫助,我強烈建議您研究REST API和AngularJS。

您越早開始學習如何使用比Web Forms更復雜的工具對前端進行編程,並且越早學習如何使用純Web技術(Ajax和JavaScript)提交數據,那么您就越早可以從Web窗體框架的范圍。 不要誤會我的意思,它可以做很多事情,並且可以幫助那些不懂網絡的人為網絡編程。 最終,當您至少知道如何在需要時走出局限時,您會變得更好。

一種解決方案是在網格中將新字段顯示為表單,並且用戶可以使用同一表單添加多行數據。類似(+)按鈕的操作可以為您做到這一點,只需保存以前的值當用戶要求一組新的字段時的表單。

首先,您的數據庫將需要進行結構化以允許這樣做。 即一個用於保存員工信息的表和另一個用於保存雇用歷史的表。 歷史記錄表將需要具有多對一關系的外鍵回到Employee表。

至於ASP.NET,您需要查找創建動態控件 您可以使用加號按鈕顯示一組字段,以添加其他字段,然后將其保存在數據庫中的一行中。

暫無
暫無

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

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