【问题标题】:online quiz using ASP dot NET使用 ASP dot NET 进行在线测验
【发布时间】:2011-01-27 03:35:25
【问题描述】:

嗨,

我需要开发一个包含 MCQ 的在线测验网站。我希望使用数字寻呼机在每页显示一个问题,以便用户可以来回切换。

我尝试使用 FormView 来显示问题和 RadioButtons。我创建了一个 QANS 类,它将保存用户为他回答的问题选择的答案,以便我以后可以总结总分。

现在,我面临的问题如下:

让用户在 PageIndex 上选择一个 RadioButton,比如 R,比如 I,然后转到其他页面,比如 K。当用户返回到页面 I 时,没有选择任何 RadioButton。 我尝试在 Page_Load() 中添加代码以将 RadioButton 的 Checked 属性设置为 true,但它没有帮助。我也对 PageIndexChanged 和 PageIndexChanging 事件进行了同样的尝试,但没有检查 RadioButton。

为特定问题选择的 RadioButton 已被存储,我可以使用 Response.Write() 打印它正在使用的 RadioButton,但我无法保持 RadioButton 处于选中状态。 这应该怎么做?

【问题讨论】:

    标签: asp.net radio-button formview checked


    【解决方案1】:

    您应该能够在

    中选中单选按钮
    protected override void OnPreRender(EventArgs e)
    

    页面生命周期事件

    【讨论】:

    • 谢谢。我不得不重写 OnPreRenderComplete 方法。
    【解决方案2】:

    您是否考虑过为此使用 .Net 向导控件? The ASP.Net 2.0 Wizard Control

    【讨论】:

      【解决方案3】:

      您可以在会话中保存选定控件的状态,并在往返后重新填充它们。

      回发后它失去了状态,这很奇怪。你的 on_load 或 pageIndexChanging 是否有任何疯狂的代码?

      【讨论】:

        【解决方案4】:

        据我了解,您必须在页面索引中保持单选按钮的选中状态。您可以为此使用 ViewState,因为它可以跨页面的回发保留数据。

        类似这样的:-

        // 定义尝试的问题ID列表 列出 questionIdsAttempted;

        //将List添加到ViewState if(ViewState["QuestionIdsAttempted"]!=null) { questionIdsAttempted=新列表() ViewState["QuestionIdsAttempted"] = questionIdsAttempted }

        // 当用户尝试提问时,将问题 id 添加到列表中 questionIdsAttempted.Add(qId);

        // 将列表添加回视图状态 ViewState["QuestionIdsAttempted"] = questionIdsAttempted

        并且在单选按钮的选中属性的页面加载中,您可以使用当前问题 id 调用一个函数,该函数将从视图状态中获取列表并根据 id 是否存在于列表中返回 true 或 false。

        当然,您需要根据程序的流程检查各个地方的视图状态的可空性。

        告诉我

        【讨论】:

          猜你喜欢
          • 2013-02-05
          • 2017-11-05
          • 1970-01-01
          • 2020-04-29
          • 2016-03-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-30
          相关资源
          最近更新 更多