プロが教えるわが家の防犯対策術!

ASP.NETWebアプリケーションについての質問です。

ajaxのTimerコントロールでイベントを発生させ、画面の再描画をしようとしています。
コードは以下のような感じで、OnPreRenderイベント内で描画処理を行います。


Partial Public Class _Default
Inherits System.Web.UI.Page

Private str As String = ""

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
str = CStr(Date.Now)
End Sub

Protected Overrides Sub OnPreRender( _
ByVal e As System.EventArgs _
)
Label1.Text = str
End Sub

End Class



Timerコントロールを配置して実行したところ、
Script controls may not be registered before PreRender.
というエラーが出てしまいます。
調べてみたのですが原因がわかりません。
何かプロパティの設定などが必要なのでしょうか?


aspx のコードは以下のとおりです。

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebApplication5._Default" %>

<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無題のページ</title>
</head>
<body>
<form id="form1" runat="server">

<asp:ScriptManager ID="ScriptManager1" runat="server" ></asp:ScriptManager>
<asp:Timer ID="Timer1"runat="server"></asp:Timer>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Labe>
l </form>

</body>
</html>

回答よろしくお願いいたします。

A 回答 (1件)

OnPreRenderはイベントではありません。



PreRenderイベントの記述

Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

OnPreRenderはPreRenderイベントを発生させているんですね。
勉強不足でした。
PreRenderイベント内に描画処理を記述することで解決しました。
ありがとうございました。

お礼日時:2011/05/12 22:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!