我正在建立一份就业申请表,将数据提交给我的公司的数据库。
在创建这个表格时,引起我注意的一件事是,当我创建就业历史部分时,我心里想,大多数申请人都会有各种各样的信息放在这里,然后制作一个所需的3个过去的雇主对目标潜在客户来说远非僵化。有些人可能只有一份工作,有些人可能有10份或更多。另外,为这些信息制作大量字段不仅看起来很糟糕,而且在数据库开发领域也是一种不好的做法。 SO ...
我想做的是,与我在Access数据库中所做的类似是Subform背后的理论,当用户开始添加输入数据时,表单复制自己,使另一组数据字段可用于很多时候用户需要。这样,只存储数据 - 而不是空白空间。
虽然这在Microsoft Access中是一种直接的做法,但我发现Asp.Net Web表单和SQL以完全不同的方式处理此过程以实现相同的目标。
我已经对这个主题做了一些研究,并发现有很多方法可以解决这个问题,而且我发现的大多数事情对于如何解决这个问题都非常模糊。所以,我联系你。
如何添加一组重复字段来处理之前工作经验的输入?为简单起见,我们假设有三个字段:雇主,主管和工作。让我们假设在用户单击并添加按钮后添加这三个字段。我需要做些什么才能在我的asp.net网络表单上重复这三个字段的重复次数?
答案 0 :(得分:1)
有很多选项可以在ASP.NET页面中重复信息,这里有一篇文章介绍了其中的一些:
答案 1 :(得分:0)
一个解决方案可能是有一个网格,其中新字段显示为表单,用户可以使用相同的表单添加多行数据。像(+)按钮这样的东西会为你做,只需保存当用户请求一组新字段时,表单的先前值。
答案 2 :(得分:0)
首先,您的数据库需要进行结构化以允许此操作。即一个用于保存员工信息的表和另一个用于保存就业历史的表。历史表需要将一个外键返回到具有多对一关系的Employee表。
对于ASP.NET,您需要查找creating dynamic controls。您可以使用加号按钮显示单个字段集以添加其他字段,然后将这些字段保存在数据库中的自己的行中。
答案 3 :(得分:0)
我工作的是遗留的.NET应用程序,大多数UI都是使用Web窗体构建的。我最近在此应用程序中使用AngularJS获得了与您类似的请求。
我给出了这个答案,知道它不是纯Web表单的答案,但它是一个可以在现有Web表单中实现的解决方案,所以我认为它仍然有效。
构建一个控制器(Controller,ApiController,甚至是.ashx' Generic Handler'),用于提交包含适用于此特定用户提交操作的所有数据的JSON数据。使用纯HTML和AngularJS在此Web窗体页面中构建UI组件(google' ng-repeat'。您将看到大量可应用于您的情况的示例)。这次实际上并没有使用Web Forms标记。您的可重复元素应绑定到前端的数据。当用户单击加号按钮以添加更多工作历史记录时,您将添加到该数据,并且Angular会重复您想要的块。
将您的新html表单的提交操作挂钩到您创建的控制器(使用表单上的ng-submit指令或某些submit元素上的ng-click指令)。如果你知道如何处理数据并且你已经跟进了,那么你应该从这里开始。如果您需要更多帮助,我强烈建议您调查REST API和AngularJS。
您越早开始学习如何使用比Web窗体更复杂的工具来编程前端,并且越早学习如何使用纯Web技术(Ajax和JavaScript)提交数据,您就能越早得到缓解您自己来自Web Forms框架的范围。不要误会我的意思,它做了很多很棒的事情,并帮助那些不了解网络,为网络设计的人。最后,当你至少知道如何在需要时超出限制时,你会更好。