@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

WebフォームでTimerを使用したい

1
投稿者投稿内容
村長
ベテラン
会議室デビュー日: 2005/04/20
投稿数: 67
投稿日時: 2006-12-20 17:55
定期的にDBの値をWebフォームのデータグリッドに表示するプログラムを作ろうとしています。

定期的という部分をTimerを使用して実現しようと思っていますが、
とりあえずTimerに慣れるため以下のサイトを見ました。

http://www.atmarkit.co.jp/fdotnet/dotnettips/374timerstimer/timerstimer.html

VisualStadioを使用している場合は、「Timerコンポーネント」をフォームに
ドラッグ&ドロップするだけとあったので、そのとおりにしてみましたが
指定時間の間隔になっても動いてくれません。

何故動かないのか、msサイトやここの過去ログなどを調べてみましたが、
いまだ解決に至っておりません。

何か根本的な部分がいけない気もしますが、見当がつきません。
おわかりになる方がいたら教えてください。

「コード抜粋」
// VisualStadioが自動生成したコード
private void InitializeComponent()
{
this.timer1 = new System.Timers.Timer();
((System.ComponentModel.ISupportInitialize)(this.timer1)).BeginInit();
//
// timer1
//
this.timer1.Enabled = true;
this.timer1.Interval = 500;
this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
this.Load += new System.EventHandler(this.Page_Load);
((System.ComponentModel.ISupportInitialize)(this.timer1)).EndInit();
}

private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
// 自分でコードを書いたのはこの部分くらい
Label1.Text += "時間です ";
}


burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-12-20 18:02
Webならサーバーサイドでタイマーを使っても意味がありません。
JavaScriptなどクライアント側でタイマーを使います。
というより、まずWebアプリの仕組みを勉強したほうがいいと思います。
村長
ベテラン
会議室デビュー日: 2005/04/20
投稿数: 67
投稿日時: 2006-12-20 18:19
burton999さん、返信ありがとうございます。

やはり根本的に違ってたようですね。(^_^;A
WEBアプリの仕組みからしてできない気はしていたんですが、
@ITの説明文が実現可能な文章にも読み取れたので、もしかしたら・・・
と思っていました。

教えのとおり、タイマ処理はJavaScriptで行おうと思います。
ありがとうございました。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-12-20 18:30
定期的に更新するだけならmetaタグを利用するのが一番てっとりばやいでしょうね。
<meta http-equiv="refresh" content="5">
この記述で5秒ごとにページが再読み込みされます。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-12-21 06:36
これからASP.NETを勉強するのでしたら
ASP.NET 2.0を使用することをお勧めします。

ASP.NET 2.0 AJAXに「Timer」というサーバーサイドの
コントロールがあります。

JavaScriptの知識が不要ですから「Timer」を
利用したらどうでしょうか。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
村長
ベテラン
会議室デビュー日: 2005/04/20
投稿数: 67
投稿日時: 2006-12-21 10:17
>どっとねっとふぁんさん

javascriptで実現するということで、setIntervalを使用して定期的にsubmitさせようと
思ってましたが、metaタグによる方法もあるんですね。
こちらのほうがスマートなのでmetaで実現しようと思います。

>Accessさん

実はAJAXによる実現も話題にあがっていて、これから調べる予定でした。
単に実現するだけならmetaで良いと思いますが、今後AJAXを取り入れていきたいという
ニーズもあるため、AJAXによる実現方法を確認の上、天秤にかけたいと思っています。

ご返答ありがとうございました。


burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-12-21 10:41
ちなみにmetaタグで実装すると、IsPostBackが毎回Falseになりますので注意してください。
1

スキルアップ/キャリアアップ(JOB@IT)