Asp.net Webform 中用于多项选择问题的单选按钮

Posted

技术标签:

【中文标题】Asp.net Webform 中用于多项选择问题的单选按钮【英文标题】:Radio Button in Asp.net Webform for multiple choice question 【发布时间】:2020-04-21 11:57:10 【问题描述】:

我正在 ASP.NET Web 窗体中创建多项选择题。我从数据库中得到问题和多项选择选项。当只有两个输入(TrueFalse)时,是否有一种简单的方法可以隐藏第三个选项 (C)?提前谢谢!

这是aspx代码:

<tr>
  <td class="style7">A.</td>
  <td style="text-align: left">
    <asp:RadioButton ID="RbA" runat="server" GroupName="gtog"/>
  </td>
</tr>

<tr>
  <td class="style7">B.</td>
  <td style="text-align: left">
    <asp:RadioButton ID="RbB" runat="server" GroupName="gtog" />
  </td>
</tr>

<tr>
  <td class="style7">C.</td>
  <td style="text-align: left" >
    <asp:RadioButton ID="RbC" runat="server" GroupName="gtog" />
  </td>
</tr>

【问题讨论】:

生成此标记的代码是什么样的?答案将更多地取决于您如何处理数据库中的数据,而不是它输出的标记是什么样的。 “我正在从数据库中获取问题和多项选择” - 请说明您是如何做到的,这样我们就不必猜测您的数据库结构了。 @JeremyCaney 我忘了包含后端代码,但 Jon 帮我举了一个例子! 【参考方案1】:

由于我们没有关于您的后端发生了什么的信息,所以我将保持这个通用性。

将 id 和 runat="server 添加到最终表格行。然后,您可以访问该服务器端以隐藏显示该行。

ASPX

<tr id="rowC" runat="server">
  <td class="style7">C.</td>
  <td style="text-align: left" >
    <asp:RadioButton ID="RbC" runat="server" GroupName="gtog" />
  </td>
</tr>

C#

if(answerCount == 2)

   rowC.visible = false;

顺便说一句,您真的应该避免使用表格进行布局。现在是 2020 年,有很多更好的方式来布局表单(或任何东西)。

【讨论】:

谢谢乔恩!它有帮助。对不起,我忘了包含我的后端代码,但你猜对了!再次感谢。我对网络开发很陌生。你能建议一些布局表格的方法吗?或一些链接?谢谢 @Peter:出于好奇,如果您是 Web 开发新手,为什么要学习 Web 表单?我认为您正在从事一个仍在使用它们的项目?我之所以这么问,是因为在使用 Web 表单时会遇到很多额外的布线和一些棘手的问题,这些问题与 Microsoft 较新的 MVC 或 Pages 框架相得益彰。但是,当然,我们都明白需要使用遗留代码!无论如何,享受学习。 @Peter:有一些替代表格的布局。最简单的就是使用divs——或其他一些容器——对内容块进行分组,然后使用例如float: left 所以多个单元格可以在一行上对齐。这样做的好处是允许单元格为更小的屏幕包装到多行,从而提供一些响应性。也就是说,还有一些更新的方法,例如 CSS 的 FlexBox,我建议您研究一下。它们需要更多的学习,但也提供了更多的灵活性,并且在超越基本场景时避免了一些陷阱。 感谢@JeremyCaney 提供有用的信息。我一定会调查的。【参考方案2】:

是的,您可以检查数据库中的项目是否为 bool 类型 - 如果为真,则隐藏第 3 个选项(C)。

所以创建一个变量来检查数据库中的项目,如果它是布尔值,则添加隐藏 RbC。

Type b = itemFromDB.GetType(); 
if(b is bool)
  RbC.hidden = true;

【讨论】:

感谢@Aman 的回复。现在更有意义了。你能给我一个“Type b = itemFromDB.GetType();”的例子吗?或更多解释。 我将 itemFromDB.GetType() 的结果分配给 b。所以要找出是否只有两个输入,我想知道输入是真还是假,即布尔类型。所以你需要知道的是是否有两个输入,我这样做的方式是检查它是否是一个布尔值。您可以随心所欲地进行操作,即使 RbA 不为空或不为空。然后基于此切换 RbC。 GetType() 从 db 检查项目的类型。我假设该项目在数据库中存储为布尔值 谢谢@Aman。我明白了,我也应该提供后端代码。再次感谢您!

以上是关于Asp.net Webform 中用于多项选择问题的单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

asp.net webform:RegisterClientScriptBlock 不适用于 jquery

浅析ASP.NET Webform和ASP.NET MVC

性能工具MiniProfiler在Asp.Net WebForm跟踪EntityFramework

ASP.NET WebForm中有多线程的概念吗?

怎么获取提示框的返回值(C# 、asp.net、webform)

asp.net中使用listview,怎么实现根据条件改变行显示颜色?是在webform中!