asp.net - 在 Timer 刻度处显示(标签控件)内部(中继器控件)
问题描述
我有显示问题的中继器和 4 个答案选项,我希望我不能在一分钟后显示 CorrectAnswer
注意:在stackoverflow中写问题花了我很多时间,我希望找到解决我的问题的方法
这是我的标记:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="lblTime" runat="server" />
<br />
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate >
<div class="panel-heading">
<div class="panel-title btn-label q-border">
<h3 class="Golden-color"><span class="label label-success" style="margin-left:10px;" id="qid"><%# Eval("Category") %></span><%# Eval("Question") %></h3>
</div>
<h2 id="counter" class="Golden-color"></h2>
</div>
<div class="panel-body card ">
<div class="quiz" id="quiz" data-toggle="buttons">
<label class="element-animation1 btn btn-lg btn-transparent btn-block"><span class="btn-label"><i class="glyphicon">A</i></span> <input type="radio" name="q_answer" value="1">
<%# Eval("OptionA") %>
</label>
<label class="element-animation2 btn btn-lg btn-transparent btn-block"><span class="btn-label"><i class="glyphicon">B</i></span> <input type="radio" name="q_answer" value="2">
<%# Eval("OptionB") %>
</label>
<label class="element-animation3 btn btn-lg btn-transparent btn-block"><span class="btn-label"><i class="glyphicon">C</i></span> <input type="radio" name="q_answer" value="3">
<%# Eval("OptionC") %>
</label>
<label class="element-animation4 btn btn-lg btn-transparent btn-block"><span class="btn-label"><i class="glyphicon">D</i></span> <input type="radio" name="q_answer" value="4">
<%# Eval("OptionD") %>
</label>
<asp:Label ID="LblCorrectAnswer" runat="server" Visible="false" Text='<%#Eval("CorrectAnswer")%>' CssClass="label label-success"></asp:Label>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>"
SelectCommand="SELECT TOP 1 * FROM Questions ORDER BY NEWID()"></asp:SqlDataSource>
<asp:Timer ID="Timer1" runat="server" OnTick="TimerTick" Interval="10000" Enabled ="true" />
</ContentTemplate>
</asp:UpdatePanel>
Protected Sub TimerTick(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
Dim lbl As Label = TryCast(e.Item.FindControl("LblCorrectAnswer"), Label)
lbl.Visible = True
End If
Timer1.Enabled = False
End Sub
解决方案
只需在更新面板内的内容模板下方添加此内容
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
推荐阅读
- java - 大(该死的大)二进制矩阵的优化
- javascript - 当 React 中的路由参数更改时,状态属性不会更新
- codeigniter-4 - 如何在共享主机上托管 codeigniter4 网站?
- c++ - 受保护的嵌套结构不能用作派生外部类中的返回类型?
- ios - 访问修改Apple Combine
- html - 试图通过 background-image:url(...) 在同样是 background-image:url(...) 的图像上叠加图像 - 不起作用
- html - onChange 文本框值未使用 React 以 HTML 形式更新
- asp.net-core - 从 AJAX 生成时提交按钮不起作用
- multithreading - 如果程序创建了太多线程会发生什么?
- google-bigquery - 如何解决无法确定项目描述的biquery cli ls操作错误