我正在尝试进行测试;一组问题和答案,其中每个问题都有多个选项可供选择(单选按钮列表)。所有问题和可能的答案都存储在数据库中。如果所有问题都是一个接一个的,使用中继器实现此操作非常简单,但是我必须一次显示一个问题,就像向导一样。
我尝试使用向导和中继器的组合,但是遇到了很多错误(下面列出)。有没有办法创建这个?我不是在寻找代码,只是在寻找有关执行此操作的想法。
这就是我累了(失败了):
<app-top-navigation class="sticky-top d-block"></app-top-navigation>
<router-outlet></router-outlet>
<app-footer></app-footer>
这会产生以下错误:
<asp:Repeater runat="server" ID="rptBronzeTest">
<HeaderTemplate>
<asp:Wizard
ID="wizTest"
runat="server"
ActiveStepIndex="0"
DisplaySideBar="false"
OnNextButtonClick="wizTest_NextButtonClick" >
<WizardSteps>
</HeaderTemplate>
<ItemTemplate>
<asp:WizardStep ID="wsStep" runat="server" StepType='<%# Container.ItemIndex == 0 ? "Start" : (Container.ItemIndex == ((IList)((Repeater)Container.Parent).DataSource).Count-1 ? "Finish" : "Step"%>'>
<asp:HiddenField runat="server" ID="hfQuestionID" Value='<%# Eval("QuestionID")%>' />
<div class="row">
<!-- QuestionID, AnswerID, TrackID, QuestionText, QuestionOrder, NumOptions -->
<div class="col-centered col-sm-12"><label><%# Eval("QuestionOrder")%>. <%# Eval("QuestionText")%></label></div>
</div>
<div class="survey-question">
<div class="row" style="padding-left:20px;">
<!-- QuestionID, AnswerID, Answer, AnswerOrder -->
<asp:RadioButtonList runat="server" ID="rblAnswers" RepeatDirection="Vertical" DataTextField="Answer" DataValueField="AnswerID"></asp:RadioButtonList>
</div>
</div>
</asp:WizardStep>
</ItemTemplate>
<FooterTemplate>
<asp:WizardStep ID="wsComplete" runat="server" StepType="Complete">
</asp:WizardStep>
</WizardSteps>
<FinishNavigationTemplate>
<asp:ImageButton runat="server" ID="ibFinishPrev"
ImageUrl="~/assets/images/Left_small.gif"
CommandName="MovePrevious"
CausesValidation="false"/>
<asp:ImageButton runat="server" ID="ibFinishComplete"
ImageUrl="~/assets/images/Check_small.gif"
OnClientClick="if(confirm('This will submit your test. Continue?')){ disableSubmit();}else return false;"
CommandName="Finish"
OnClick="ibFinishComplete_Click" />
</FinishNavigationTemplate>
</asp:Wizard>
</FooterTemplate>
</asp:Repeater>
如果我删除向导并仅使用中继器,则所有问题/答案都会正确显示,一个接一个。
更新
尝试在服务器端动态将向导添加到占位符。尽管跟踪显示它添加了所有向导步骤,但是当我运行它时,我看到问题1和可能的答案,请单击“下一步”,什么也没有!
System.Web.UI.WebControls.WizardStepCollection must have items of type 'System.Web.UI.WebControls.WizardStepBase'. 'ItemTemplate' is of type 'System.Web.UI.HtmlControls.HtmlGenericControl'.