动态创建在线调查/测试

时间:2012-01-20 21:42:50

标签: asp.net c#-4.0

我希望创建一个测试/调查用户的页面。我将从管理页面创建问题和答案选项,并保存到数据库中。我需要弄清楚如何动态创建页面来显示这些,并能够在保存时获取信息。

这就是我一直试图将所有信息添加到。

<asp:Label ID="lblPollText" runat="server" />
<asp:CheckBoxList ID="cblPollChoices" Visible="false" runat="server">
</asp:CheckBoxList>

<asp:RadioButtonList ID="rblPollChoices" Visible="false" runat="server">
</asp:RadioButtonList>

我最大的问题是以有用的方式获取信息,以便我可以保存每个响应。我尝试将上面的代码添加到用户面板,并递归地添加传递questionid的面板以加载它。我遇到的一个大问题是在用户点击保存后获取信息。我把这个问题带到了这里,没有运气Get UserControl from inside ControlCollection

我尝试过搜索谷歌这是一个很好的方法,但还找到了一个。我发现的最好的是使用xml,我不想这样做。

2 个答案:

答案 0 :(得分:1)

我使用asp.net MVC做了同样的事情..那更容易..但你仍然可以使用简单的asp.net做到这一点你的一种方法是在客户端使用jquery创建表单,这是当用户提交表单时,我能想到的下一个最简单的方法,你可以获得所有信息 Request.Form收藏品 现在因为感觉你已经制作了Q&amp; A形式,并希望重新获得价值。
因为您所创建的控件是基于底层表单结构动态生成的,您必须在每个Page_Load()事件上创建控件。
那么你就可以访问某些值了 如果您的动态控件位于某个容器控件中,您仍然需要生成它们,然后在ContainerControl.Controls属性中查找它们,您将在那里找到它们。 或者你可以覆盖所有内容,这里也可以加入request.form集合并解析它以获取值

答案 1 :(得分:0)

我正在做同样的项目。在我的情况下,我有一个ViewModel,其中包含Question的对象和Answers的列表。我在创建问题和答案时使用javascript扩展Answers列表,然后将它们插入到数据库中。填充我的ViewModel后,我可以再次使用ViewModel对象访问该信息并显示它。正确显示后,您可以轻松获得用户选择的答案。要插入用户的答案,您需要在数据库中使用另一个表来保存用户选择。希望你明白如何做到这一点。