0

更新パネル内にタイマー コントロールがあり、タイマーは JavaScript を実行する必要があります。

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

    <asp:UpdatePanel ID="ImagePanel" runat="server" UpdateMode="Conditional">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
        <ContentTemplate>
            <asp:Timer ID="Timer1" runat="server" OnTick="SlideImages" Interval="4000"></asp:Timer>
            <div id="slideshow" runat="server">
                <div runat="server" id="currentImageDiv" class="current">
                    <img id="currentImage" src="" runat="server" class="slideImage current" />
                    <asp:Label  runat="server" id="currentImageCaption" CssClass="caption"></asp:Label>
                </div>
                <div runat="server" id="nextImageDiv" class="next">
                    <img id="nextImage" src="" runat="server" class="slideImage next" />
                    <asp:Label runat="server" id="nextImageCaption" CssClass="caption"></asp:Label>
                </div>
            </div>
            <asp:HiddenField runat="server" ID="slideIndexField" Value="1"/>
        </ContentTemplate>
    </asp:UpdatePanel>    

コードビハインド:

protected void SlideImages(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(
            Timer1,
            Timer1.GetType(),
            "SlideImages",
            @"<script src='Scripts/jquery-1.10.1.min.js' type='text/javascript'></script>
            <script type='text/javascript'>
                alert('script executed');
            </script>",
            true);
}

しかし、うまくいかないようです。何を変更する必要がありますか?

4

3 に答える 3

0

ああ、間違いは RegisterStartupScript の最後のパラメーターでした。既にスクリプト タグを含めているため、 falseに設定する必要があります。

于 2013-09-26T13:35:21.873 に答える
0

ハンドラを追加できますSys.WebForms.PageRequestManager.instance. End Request event

クライアント側の関数を直接呼び出す

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(endRequestHandler);

function endRequestHandler(){
 alert('script executed');
}
于 2013-09-26T12:36:33.407 に答える
0

UpdatePanel内のカウントダウンタイマー表示に次のjavascriptコードを使用しています...、そしてそれは動作します。

<script>
  function startTimer() {
    var xMinutes = 10 * 1, 
        duration = xMinutes;
    var timer = duration, minutes, seconds;
    setInterval(function () {
      minutes = parseInt(timer / 60, 10);
      seconds = parseInt(timer % 60, 10);

      minutes = minutes < 10 ? "0" + minutes : minutes;
      seconds = seconds < 10 ? "0" + seconds : seconds;

      //[not working]
      // display.textContent = minutes + ":" + seconds;

      //[working]
      document.getElementById("xtime1").innerHTML = minutes + ":" + seconds;
      if (--timer < 0) {
        timer = duration;
        gotomain();
      }
    }, 1000);
  }
</script>
于 2019-11-15T17:57:23.257 に答える