【问题标题】:Radio Button in Asp.net Webform for multiple choice questionAsp.net Webform 中用于多项选择问题的单选按钮
【发布时间】: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 帮我举了一个例子!

标签: javascript c# asp.net webforms


【解决方案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。我明白了,我也应该提供后端代码。再次感谢您!
猜你喜欢
  • 2017-09-07
  • 2021-02-16
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
  • 2013-02-24
  • 1970-01-01
相关资源
最近更新 更多