アリンコネット – あるSEのログ2


2007 年 4 月 20 日

マスターページとクライアントIDの関係

カテゴリー: 開発(備忘録) – Tags: – teminami 12:24

Visual Studio 2005のマスターページとはいわゆるテンプレートでその中にコンテンツを記入するだけで、サイト全体のアクセス方法やデザインを統一する事ができる。
しかも、SiteMapPathやSiteMapコントロールと組み合わせるとかなり省力化が図れる。

が、各オブジェクトにアクセスする方法がサーバー(C#,VB.NET)とクライアント(JavaScript)で異なる。
どうも、マスターページ内に複数のコンテンツホルダ(CH)が存在する場合にオブジェクトが複数存在する可能性が発生する為、オブジェクトのIDにCHのIDを付与する=クライアントでのIDが変わるという事らしい。

つまり、

efault.aspxで日付を設定する際には日付選択用のdate.aspxを選択して、
default.aspxのTextbox1へ設定する。

という処理が

【ASP.NET】
<img src=”button.gif” onClick=”JavaScript:Test(’Textbox1′)”>

【ASP.NET2.0】
<img src=”button.gif” onClick=”JavaScript:Test(’[サーバーによっ自動生成]_Textbox1′)” />

となり、固定値は保障されない(ClientID)。よってサーバー上でオブジェクトのClientIDを使って
上記のJavaScriptを出力しなければならない。よって

・クライアント側
<ASP:ImageButton ID=”ImagaButton1″ runat=”server” ImageUrl=”button.gif” />

・サーバー側
ImageButton1.OnClientClick = String.Format(”JavaScript:Test(’{0}’)”,Textbox1.ClientID);

としなくてはならない。orz

2007 年 4 月 18 日

Visual Studio 2005

カテゴリー: 開発(備忘録) – Tags: – teminami 22:38

ようやく本格的に使用を始めたVS2005。新規一転、C#をメインにするつもり。
そこで思ったのが、
・クラス化を徹底しなければ。
・開発用Webサーバーは便利
ただ、開発用Webサーバーは仮想ディレクトリにルートをしたプロジェクトを別のPCへ持っていったらうまく動かない。とりあえずSP1を当ててから再度検証したい。