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 窗体中创建多项选择题。我从数据库中得到问题和多项选择选项。当只有两个输入(True
或 False
)时,是否有一种简单的方法可以隐藏第三个选项 (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:有一些替代表格的布局。最简单的就是使用div
s——或其他一些容器——对内容块进行分组,然后使用例如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
性能工具MiniProfiler在Asp.Net WebForm跟踪EntityFramework