検索 
2010年7月31日 ..:: ブログ ::..   ログイン


 chack のブログ
書籍「ASP.NET AJAX 入門」を執筆させていただきました
お知らせ By : Akira INOUE   Date : 2007/10/26 17:41

この度、「ASP.NET AJAX 入門」という書籍を執筆させていただきました。

書籍紹介ページへ

いやぁ、やっと発売できたぁ~という感じで、結構長かったです、はい。
6 月頃から本格的に書き始めて、Tech・Ed 2007 直前の 8 月 20 日に最初の原稿を出すまで、およそ 3 ヶ月。
その後、校正に 1 ヶ月ほどかけて、やっと発売になります。

校正で読めば読むほど、いろいろと書き直したくなってしまいました。正直なところ、AJAX Control Tookit の章はちょっと単調になりすぎたかな?と反省しています。もう少し詳しく書ければよかったのですが、時間とページ数の関係で断念しました・・・。

けれども、ASP.NET AJAX に関して一通りは網羅できたかなと思っています。“入門”といえども、一応は応用的なところも書いていますので、機会がありましたら、お手にとって見ていただけたらと思います!

P.S
山田さんの「ASP.NET AJAX プログラミング」には、ちとかなわないかなぁ(^^;

 

コメント (6)

第 8 回 VSUG アカデミー終了
イベント By : Akira INOUE   Date : 2007/10/26 17:36

昨日、第 8 回 VSUG アカデミー「Vista サイドバーガジェットのデザインとプログラミング」で 90 分間、しゃべりまくってきました。

ご参加いただきましたみなさん、お手伝いいただきました事務局のみなさん、かるあさん、ありがとうございました。

資料を作成する前は、90 分間も話すことあるかな?と思っていたのですが、資料を作成してみたら 45 ページ以上になってしまい、デモを含めてぎりぎりの時間となってしまいました。ちょっと駆け足になってしまった部分もあったのですが、ガジェット開発での基礎的な部分とポイントはお話できたかな?と思っています。

みなさんのガジェット開発にお役に立てれば嬉しい限りです。

なお、近日中にデモでご紹介したサンプルガジェットをダウンロードできるようにしますので、しばしお待ちください。VSUG のサイトの方で公開する予定でいます。

 

コメント (0)

第 8 回 VSUG アカデミー「Vista サイドバーガジェットのデザインとプログラミング」
イベント By : Akira INOUE   Date : 2007/10/18 18:56

第 8 回 VSUG アカデミー(10 月 25 日 19:30 開催)で

Vista サイドバーガジェットのデザインとプログラミング」

のテーマでスピーカーをつとめさせていただくことになりました。

詳細、申し込みは以下の URL となっています。
http://vsug.jp/tabid/168/Default.aspx

今、コツコツとセッション資料を作成しているのですが、ちょっとだけネタばらしをすると、Vista ガジェットで Silverlight が動くのをお見せしたりしちゃいます。(といっても、たいしたデモではないのですが・・・)

Vista サイドバーガジェットの作成にご興味のある方は、ぜひご参加ください!(興味のない人も、お暇ならぜひ!)

 

コメント (0)

Silverlight Control Toolkit
Silverlight By : Akira INOUE   Date : 2007/10/10 10:26

なにげに、サイトデザインが新しくなった CodePlex を見ていたら、

Silverlight Control Toolkit

なる新しいプロジェクトが 2007/10/9 付けで始まっていました。

"This is inspired from the Ajax Control Toolkit."

とのことで、今後が楽しみですね。

現在は、初期リリースとして SilverlightControlToolkit + Samples がダウンロードできます。

このリリースは

  • This release is for preview only.
  • There is no documentation, except the sample web sites.
  • In order to compile the full version, you need Nikhil's Script# compiler.

だそうです。

まだ Silverlight でさえ、あまりいじる時間がないのですが、この Silverlight Control Toolkit も近いうちに試して見たいと思います。

 

コメント (0)

.NET Framework ソースコード公開!
Programming By : Akira INOUE   Date : 2007/10/04 18:07

ビッグニュースです!
すでに多くのサイトやブログで記事がのっていますので、かなり出遅れている気はしますが・・・

Visual Studio 2008 のリリースと同期して、.NET Framework のソースコードが公開され、参照できるようになります。
これは、非常に うーれしーぃ♪

ネタ元代表として MS 新村さんのブログの記事にリンクしておきます。

.NET Framework のソースコード公開に関するお知らせ

まずは、以下のソースコードが対象のようですが、今後拡大していくとのこと。

  • Base Class Library
  • ASP.NET
  • Windows Forms
  • System.Data
  • System.Xml
  • Windows Presentation Foundation

ライセンス形態は Microsoft Reference License (MS-RL) とのことで参照のみが許可されます。

アンマネージの世界で MFC や ATL のソースコードが参照できたことで、デバッグがやりやすかったことを思うと、今回の .NET Framework のソースコード公開も、デバッグにおいて大変有効なことです。また、.NET Framework にまだまだ潜んでいるであろうバグ対策にも有効なのではないでしょうか。

 

コメント (2)

サイトの物理サーバを移行しました
お知らせ By : Akira INOUE   Date : 2007/10/04 18:04

当サイトのサーバが重くて困った、という投稿を以前しましたが、また cervi.jp 河端さんにご協力いただきまして、新しい物理サーバに移行していただきました。

ということで、かなり動作がきびきびして快適です(しあわせー)。

以上、お知らせでした。

 

コメント (0)

COM DLL をレジストリに登録しないで使用する方法 (COM DLL の Side-by-Side 実行)
Programming By : Akira INOUE   Date : 2007/10/02 17:15

Windows XP 以降では、COM DLL をレジストリに登録 (regsvr32) しなくても、アプリケーションで使用できる仕組みが用意されています。

【Windows XP で分離アプリケーションと Side-by-Side アセンブリをビルドし、サービスを提供する方法】
http://www.microsoft.com/japan/msdn/windows/windowsxp/sidexsidewinxp.aspx

などに詳細が記述されていますが、ちょっと難しく書かれていて読んでもいまいちピンときません。

先日、知人に聞かれたのを機に、改めて試してみました。

上記のドキュメントで、Side-by-Side (SxS) アセンブリという言葉が出てきますが、簡単に言ってしまえばこれまでの Win32 ネイティブな DLL のことです。ドキュメント中にも Win32 アセンブリという記述があります。
ただ、Win32 DLL と言っても、複数の DLL をひとまとめにして Side-by-Side アセンブリを構成する場合もありますし、それらの DLL が COM コンポーネントとして作成されている場合もあります。

ここでは、シンプルに以下の構成で COM DLL を サイドバイサイド実行するサンプルを紹介します。

実行ファイル : SampleApp.exe
COM DLL : SampleCom.dll

この場合、通常は

C:\>regsvr32 SampleCom.dll

で、レジストリに登録すれば SampleApp.exe や、その他のアプリケーションで SampleCom.dll が使用できます。

これを、SampleApp.exe と SampleCom.dll を同じフォルダに配置して、SampleCom.dll をレジストリに登録しないで SampleApp.exe から使用するには、以下の作業をおこなうことになります。

  1. アセンブリ名を決める
  2. アプリケーションマニフェストを作成する
  3. アセンブリマニフェストを作成する

なお、実行ファイルと DLL を同じフォルダに配置して使用する場合の Side-by-Side (Win32) アセンブリをプライベートアセンブリといいます。一方、Side-by-Side アセンブリ キャッシュ(Windows フォルダ内の WinSxS フォルダ)に配置する方法もあり、この場合は共有アセンブリといいます。
ここではプライベートアセンブリとして COM DLL を使用します。共有アセンブリとして WinSxS フォルダに配置して使用する方法は上記のドキュメントなどを参考にしてください。

 

1. アセンブリ名を決める

アセンブリ名は Organization.Division.Name の形式が推奨されています。
ここでは、

BitWiz.Samples.SampleCom

とします。

2. アプリケーションマニフェストを作成する

マニフェストファイルは、拡張子が .manifest の XML ファイルです。
アプリケーションマニフェストは、実行ファイル名に .manifest を付加したファイル名とします。

ここでは、実行ファイル名が SampleApp.exe ですから、アプリケーションマニフェストファイル名は

SampleApp.exe.manifest

となります。

このアプリケーションマニフェストに、アプリケーションの情報と Side-by-Side アセンブリとの依存関係を記述します。BitWiz.Samples.SampleCom アセンブリとの依存関係を記述したマニフェストファイルを以下に示します。

【SampleApp.exe.manifest】

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity
    version="1.0.0.1"
    processorArchitecture="x86"
    name="BitWiz.Samples.SampleApp"
    type="win32"
/>

<description>アプリケーションの説明をここに記述します。</description>

<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="BitWiz.Samples.SampleCom"
            version="1.0.0.1"
            processorArchitecture="x86"
        />
    </dependentAssembly>
</dependency>

</assembly>

3. アセンブリマニフェストを作成する

アセンブリ名を BitWiz.Samples.SampleCom としましたので、

BitWiz.Samples.SampleCom.manifest

というファイル名のアセンブリマニフェストを作成します。
このマニフェストには、アセンブリを構成するファイル(DLL)の情報を記述します。
COM DLL の場合は comClass 要素を使って、clsid などの COM 登録情報を記述します。

SampleCom.dll が次に示す情報を持つ場合のアセンブリマニフェストを以下に示します。

クラス名:SampleCom Class
GUID:{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
スレッディングモデル:apartment
プログラムID:BitWiz.SampleCom
タイプライブラリGUID:{ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ}

【BitWiz.Samples.SampleCom.manifest】

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity
    version="1.0.0.1"
    processorArchitecture="x86"
    name="BitWiz.Samples.SampleCom"
    type="win32"
/>

<file name="SampleCom.dll">
    <comClass description="SampleCom Class"
        clsid="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"
        threadingModel="apartment"
        progid="BitWiz.SampleCom"
        tlbid="{ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ}"
    />
</file>

</assembly>

なお、もし COM DLL のソースコードなどがなく GUID などの情報がわからない場合は、一度 regsvr32 でレジストリに登録し、レジストリを直接参照するなどして入手する必要があります。

 

以上の2つのマニフェストファイルを記述したら、以下の4つのファイル

├ SampleApp.exe
├ SampleApp.exe.manifest
├ SampleCom.dll
└ BitWiz.Samples.SampleCom.manifest

を同一フォルダに配置し、SampleApp.exe を実行してみましょう。
問題がなければ、SampleCom.dll をレジストリに登録しなくても使用できることが確認できると思います。

なお参考までに、アセンブリ名と同じフォルダを作成して以下のように配置することもできます。

├ SampleApp.exe
├ SampleApp.exe.manifest
└ BitWiz.Samples.SampleCom  (フォルダ)
   ├ SampleCom.dll
   └ BitWiz.Samples.SampleCom.manifest

◇◇◇

以上のようにして Windows XP 以降では、適切なマニフェストファイルを用意し、実行ファイルと共に COM DLL をコピーするだけで他のアプリケーションに依存させずに COM コンポーネントを使用することができます。

 

コメント (8)

[AJAX Control Toolkit] AutoComplete エクステンダで数字だけのデータが 'undefined' になる
ASP.NET AJAX By : Akira INOUE   Date : 2007/09/25 16:13

先日バージョンアップした AJAX Control Toolkit 1.0.10920 の AutoComplete エクステンダ(AutoCompleteExtender)に不具合があり、数字だけの文字配列をWebサービスまたはページメソッドで返した場合に、表示が 'undefined' になってしまいます。

図a 数字のみの場合 'undefined' 表示
bad.jpg

図b 英字が一つでも含まれれば正常
good.jpg

CodePlex に以下の要望があがっており、ver.1.0.10920 より仕様追加されています。

● AutoComplete - key value
http://www.codeplex.com/AtlasControlToolkit/WorkItem/View.aspx?WorkItemId=9043

この変更で追加されたコードによる不具合のようで、以下の箇所が問題のようです。

AutoCompleteBehavior.js - line:747

747: var pair = Sys.Serialization.JavaScriptSerializer.deserialize('(' + completionItems[i] + ')');
748: if (String.isInstanceOfType(pair)) {
749:     // If the web service only returned a regular string, use it for
750:     // both the text and the value
751:     text = pair;
752:     value = pair;
753: } else {
754:     // Use the text and value pair returned from the web service
755:     text = pair ? pair.First : null;
756:     value = pair ? pair.Second : null;
757: }

例えば completionItems[i] が "012" の場合、JavaScriptSerializer.deserialize メソッドは Integer 型の 12 を返します(deserialize メソッド内部では eval('(' + '012' + ')') をおこなっている...)。
そのため、755行目の text と、756行目の value が共に 'undefined' となってしまっています。

CodePlex の方にも既に不具合報告があがっていましたので、vote & comment しておきました。

● AutoCompleteExtender fails with numeric values
http://www.codeplex.com/AtlasControlToolkit/WorkItem/View.aspx?WorkItemId=12901

気になる方はぜひ vote してくださいー。

ちなみに、今のところの回避方法は旧バージョンの 10618 を使うか、こちらの AutoComplete Key/Value Pair に書かれている Key/Vaue Pair を返す方法のいずれかになると思います。

 

コメント (0)

サイトが重い
DotNetNuke By : Akira INOUE   Date : 2007/09/23 22:12

どうも、ここ最近、このサイトのサーバレスポンスが遅くて困っています。
DotNetNuke を 4.5.5 へバージョンアップしてからが、顕著に遅くなっている感じです。
先ほどは、タイムアウトしてしまうほどでした。

時間によっては非常にさくさくと応答してくれるときもあるのですが、あきらかに以前よりおもくなっています。
特にサイトへのトラフィックが多いわけでもないし、かといって DotNetNuke が原因とも言い切れず、ちょっと悩んでます。

なんとかせねば・・・

 

コメント (0)

[AJAX Control Toolkit] Version 1.0.10920.0 リリース
ASP.NET AJAX By : Akira INOUE   Date : 2007/09/23 21:58

AJAX Control Toolkit の最新バージョン(10920)が 9/20 にリリースされています。
(アセンブリバージョンは 1.0.10920.32880 )

ASP.NET AJAX Control Toolkit Version 1.0.10920.0 ( 2007/09/20 Release )
http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=4941

主にバグフィックスと機能追加がおこなわれているようです。
新しいコントロールの追加はありません。

早速使ってみたところ、 AutoComplete エクステンダを使用しているアプリケーションで問題発生。
以下の仕様追加によるバグ(?)のようです。

AutoComplete: Allow users to associate additional data with the AutoComplete suggestions.

以下の要望で追加された機能(Key value pair 対応)に起因する不具合のようです。
http://www.codeplex.com/AtlasControlToolkit/WorkItem/View.aspx?WorkItemId=9043

これまでの単純な文字配列としてデータを返す Web サービス or ページメソッドで、数値だけのデータを返すと、undefined になってしまうというものです(詳細は後日アップします)。

あー、はまった、はまった・・・

 

コメント (0)

REMIX07 TOKYO 感想など
イベント By : Akira INOUE   Date : 2007/09/20 16:08

ということで、昨日は REMIX07 TOKYO に参加してきました。

始めから終わりまで Silverlight 一色でしたね。やはり。

今後、Silverlight の採用コンテンツがどのくらい増えるかがポイントかと思いますが、本格的に使われ始めるのは 1.1 以降かなと(個人的には)感じています。
でも、私も少しずつ Silverlight をさわり始めようと思ってはいますが。

REMIXには初めて参加しましたが、Tech・Ed などとはまたひと味違った雰囲気で、そこそこ楽しめました。
でも、東京国際フォーラムの移動の大変さには閉口。まさに迷路です。

まぁ、TBS青木アナを生で見られたことと、夜のパーティでひとまず不満も解消。
帰りには予定通りビッグカメラに寄り道しました(何も買わなかったけど)。

 

コメント (0)

REMIX07 TOKYO 参加します
イベント By : Akira INOUE   Date : 2007/09/18 20:11

明日(9/18)は、REMIX07 TOKYO に参加します。会場は東京国際フォーラムです。

まだ、どのセッションを受講するか考えてないのですが、おそらく AJAX と Silverlight がメインかな?と。
パーティもあるし、楽しんできます。

で、帰りにビックカメラに寄り道予定。

 

コメント (0)

Google Japan デベロッパー交流会 (Google Developer Roundtable) に参加しました
イベント By : Akira INOUE   Date : 2007/09/18 20:01

先日、Google Japan 主催の座談会「Google Developer Roundtable」の第1回「iGoogle and Google Gadget」に、お誘いを受けまして参加してきました。

そのときの様子が Google Japan Blog で公開になっていますので、ぜひ見ていただけたらと思います(動画でも見られます!)。

[Google Japan Blog]
デベロッパー交流会 ( 第 1 回 ) ─ Vol.1
デベロッパー交流会 ( 第 1 回 ) ─ Vol.2
デベロッパー交流会 ( 第 1 回 ) ─ Vol.3
デベロッパー交流会 ( 第 1 回 ) ─ Vol.4

[YouTube]
Google デベロッパー 交流会 (第1回) 前編
Google デベロッパー 交流会 (第1回) 後編

一般参加者として私を含め6名と、Googleのプロダクトマネージャやエンジニアの方々との座談会といった形で行われ、なかなか濃い内容の話しができ有意義な時間が過ごせました。

私は、昨年の Google Desktop Gadget Gontest の入賞者&Googleガジェットの書籍も書いているということでメンバに選ばれたのですが、他の参加メンバの方々のプロフィールを見てちょっと恐縮してしまったのはいうまでもありません(+_+;

テーマは主に iGoogle ガジェットについての意見交換という感じでしたので、これまで Google デスクトップガジェットばかりを作ってきた私にしてみると正直ちょっと話しづらい面もあったのですが、それでもデスクトップガジェット開発での体験談をうまく iGoogle ガジェットに絡めて述べることができたかな?と思っています。

最近は、Web サービス(Web API)としていろいろなサービスを公開する企業が増えてきています。それにともない、それらの Web サービスを組み合わせて Web アプリケーションを構築するマッシュアップという言葉を色々なところで聞くようになっています。また、マッシュアップでは Ajax 的なテクノロジ要素も欠かせませんよね。ガジェットやブログパーツは、一種のミニ Web アプリーケーションと呼べるでしょう。今後、いろいろな Web サービスを組み合わせた、おもしろいガジェットが数多く登場することを期待します。

また、自分専用にパーソナライズ(カスタマイズ)できる Web ページも多く出てきていますが、そのようなパーソナライズページで重要な役割を果たしていくのが、Web ページに自由に配置できるガジェットやブログパーツなのではないでしょうか。

Google が用意するパーソナライズページ iGoogle は、他のパーソナライズページとはひと味違った Google らしさを感じさせる Web ページになっています。ページには iGoogle ガジェット(ユニバーサルガジェット)をいくつも配置可能で、ページの大半を自分専用にカスタマイズすることができます。一つの Web ページで自分が必要とする情報がすべて得られたら、なんて素敵なことでしょう。

なお現在、iGoogle ガジェットコンテスト( http://igooglecon.jp/ )が開催されています。締め切りは 2007 年 10 月 1 日です。ご興味のある方はぜひ参加されてみてはいかがでしょうか。

 

コメント (0)

[ASP.NET AJAX] web.config の jsonSerialization 構成要素の maxJsonLength 属性値
ASP.NET AJAX By : Akira INOUE   Date : 2007/09/11 1:02

MS 大西さんが興味深い記事を書かれていたのでメモしておきます。

Silverlight 1.0 + ASP.NET AJAX : 試行錯誤を減らすための参考情報 :ScriptingJsonSerializationSectionクラスのMaxJsonLengthプロパティのサイズ設定をお忘れなく

要は、ASP.NET AJAX で ScriptManager による JavaScript からの Web サービス呼び出しを JSON で行う場合は、web.config の jsonSerialization 構成要素の maxJsonLength 属性値を適切に設定しましょう、ということですね。

<system.web.extensions>
  <scripting>
    <webServices>

      <jsonSerialization maxJsonLength="1024000" />

    </webServices>
  </scripting>
</system.web.extensions>

maxJsonLength のデフォルトは 102400 文字らしいですが、約65000文字の XAML(の JSONシリアライズ文字列)が処理できなかったとも書かれていますから、注意が必要です。

私は幸いに、まだこの制限による問題に遭遇していないのですが、設計の段階からクライアントスクリプトと Web サービス間の通信量を十分考慮する必要がありそうです。

セキュリティなどの視点から、この maxJsonLength の値をむやみやたらに大きく設定することも控えたほうがいいのかもしれません。

適切な値を十分検討する必要がありそうですね。

 

コメント (0)

Tech・Ed 2007 Yokohama Usergroup Street Live セッション資料公開
イベント By : Akira INOUE   Date : 2007/09/10 10:50

先日行われた、Tech・Ed 2007 Yokohama の Usergroup Street Live のセッション資料が公開されています。

Tech・Ed 2007 Usergroup Street Live !

「aspxの日記2007(ASP++ブログ) by Moo」より
Usergroup Street Live のスライドが公開に。

「かるあ のメモ」より
2007 Usergroup Street Live のスライド

かるあさんも書かれていますが、PDF で公開となっていますので、PPT アニメーションを駆使した方は残念・・・

あぁ、自己紹介ページ削除しておけばよかった・・・後悔。

 

コメント (0)

DotNetNuke 4.5.5 移行完了
DotNetNuke By : Akira INOUE   Date : 2007/09/10 10:43

とりあえず、無事に DotNetNuke 4.5.5 への移行が完了しました。
一部修正しなければならない箇所などがありますが、これから徐々に作業を行っていく予定です。

それと、新しいサブドメインも作成しましたので、これからちょこちょこと使用していこうと思います。
サブドメイン名は、まだ秘密。

 

コメント (0)

DotNetNuke 3.2.2 → 4.5.5 移行実施します
DotNetNuke By : Akira INOUE   Date : 2007/09/07 20:20

こちら で書いた DotNetNuke のバージョンアップを 2007年9月9日0:00から行うことになりました。一時的にサイトにアクセスできなくなりますがご了承ください。

先日の Tech・Ed の際に、河端さん (Cervi,INETA,PASSJ,MVP,DotNetNuke.jp など広く活躍されている方です)にご相談したところ全面的にご協力いただけることとなりまして、予想より早い実施となりました。河端さんには、ほんと頭が上がりません。とても感謝しています。

ということで、無事にバージョンアップ作業が完了すれば、このサイトもやっと ASP.NET 2.0 ベースで稼働することになります。そうすれば、あんなこともこんなことも出来るようになるので楽しみです♪

 

コメント (0)

コミュニティ勉強会に参加しよう~第 1 回・東京編
イベント By : Akira INOUE   Date : 2007/09/07 19:52

ぐはっ、9/29 かぁ・・・

コミュニティ勉強会に参加しよう~第 1 回・東京編 (アイネタ ジャパン & マイクロソフト共催)

開催日:2007 年 9 月 29 日(土) 13 時 ~ 18 時(受付開始 12:30)
会 場:マイクロソフト株式会社 新宿本社 OST 5F セミナールーム

フリーエンジニアカンファレンス 2007

に行くつもりだったけど、どうしよう。
どっちに行こうかな。

検討しますっ。

 

コメント (0)

[ASP.NET AJAX] JavaScript の pageLoad 関数と pageUnload 関数
ASP.NET AJAX By : Akira INOUE   Date : 2007/08/30 21:00

@IT の Insider.NET 会議室でこんな投稿
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=40926&forum=7&3
があったので、少しだけフォローしておきます。

ASP.NET AJAX では、クライアントの JavaScript に pageLoad または pageUnload という名前の関数があった場合、ページのロード時およびアンロード時に必ず実行されるようになっています。

Script.js

// ページロード
function pageLoad()
{
  $get("output").innerHTML += "ページロード<br />";
}

// ページアンロード
function pageUnload()
{
  alert("ページ アンロード");
}

if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

Default.aspx

<body>
  <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" >
      <Scripts>
        <asp:ScriptReference Path="Script.js" />
      </Scripts>
    </asp:ScriptManager>
    <hr />
    <div id="output"></div>
  </form>
</body>

とくに <body onload="pageLoad()"> などと onload イベントを記述する必要はありません。
記述してしまうと、pageLoad 関数が2回実行されることになりますので注意が必要です。

【上記コードの実行結果】
fig1.jpg

 

また、ページのロードイベントおよびアンロードイベントは Sys.Application.add_load および Sys.Application.add_unload メソッドで任意の関数をイベントハンドラとして指定できますが、暗黙的に実行される pageLoad 関数と pageUnload 関数の実行順序は以下のようになります。

【ページロード時】
1. Sys.Application.add_load メソッドで追加した任意の関数
2. pageLoad 関数

【ページアンロード時】
1. pageUnload 関数
2. Sys.Application.add_unload メソッドで追加した任意の関数


なお、pageLoad 関数などのページロードイベントハンドラは、UpdatePanel によるページの部分更新でも実行されることに注意してください。
この場合には、pageLoad 関数の第2引数で渡される Sys.ApplicationLoadEventArgs オブジェクトのプロパティから、ページ全体の更新による呼び出しなのか、部分更新による呼び出しかを判別することが出来ます。

Script.js

// ページロード
function pageLoad(sender, /*Sys.ApplicationLoadEventArgs*/ args)
{
  $get("output").innerHTML += "ページロード( " +
                              "isPartialLoad = " +
                              args.get_isPartialLoad() + " )<br />";
}

if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

Default.aspx

<body>
  <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" >
      <Scripts>
        <asp:ScriptReference Path="Script.js" />
      </Scripts>
    </asp:ScriptManager>

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
        <asp:Button ID="Button1" runat="server" Text="Button" /><br />
        <asp:Label ID="Label1" runat="server">
          <% = DateTime.Now.ToString() %>
        </asp:Label>
      </ContentTemplate>
    </asp:UpdatePanel>

    <hr />
    <div id="output"></div>
  </form>
</body>

【上記コードの実行結果】
fig2.jpg

 

まだまだ日本語の情報が少なく英語の情報になりますが、以下に詳しく解説されていますので参考にしてみてください。

「ASP.NET AJAX Client Life-Cycle Events」
http://www.asp.net/AJAX/Documentation/Live/overview/AJAXClientEvents.aspx

 

コメント (0)

[VSUG] コードコンテスト 2007 開催
イベント By : Akira INOUE   Date : 2007/08/30 19:06

VSUG (Visual Studio ユーザーグループ)で、コードコンテスト 2007 が開催されます。

本日からエントリーが開始されました。

「VSUG ユーザーを便利にしよう!会員でつくるコードコンテスト 2007」
http://vsug.jp/tabid/163/Default.aspx

いろいろと賞品もあるようですので、興味のある方はぜひチャレンジしてみてください。

条件に

.NET Freamework 1.1~3.0のいずれかのバージョンで動作すること

とあるので、JavaScript はダメなのかぁ(ガジェットじゃ無理なのね)

 

コメント (0)


MCAD


techbank.jp


Copyright © 2005-2008 by BitWiz   使用条件  プライバシー