首页 > 解决方案 > 在 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

标签: asp.net

解决方案


只需在更新面板内的内容模板下方添加此内容

  <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
  </Triggers>

推荐阅读