« 2007年01月 | メイン | 2007年03月 »

2007年02月21日

ポストバック先で前のページのコントロールにアクセスする

さて、ポストバック先を別のページにすることはできましたが、ポストバック先で、 ポストバック元のコントロールのプロパティを取得したい場合はどうすればいいんでしょうか。

さきほどの10行でずばり!のページではFindControlメソッドを利用しています。大抵の場合はこれでいけるのですが、 マスターページを利用したページでは、子コントロールの階層が複雑になり、 単純なFindControlでは対象のコントロールを見つけることができません。

そこでこんな関数で探してやりましょう。単純に再帰してコントロールを探しているいるだけです。

 private Control FindControl(Control ctl, string id)
{
Control resultCtl = ctl.FindControl(id);
if (resultCtl != null)
return resultCtl;
else
{
for (int i = 0; i<ctl.Controls.Count; i++)
{
resultCtl = FindControl(ctl.Controls[i], id);
if (resultCtl != null)
return resultCtl;
}
}
return null;
}

ASP.NETでポストバック先を別のウインドウに表示したい

結構要望があると思うんですが、どうでしょう?
フレーム構造にしてたりすると必須になりますし。

ASP.NET2.0からボタンコントロールにPostBackUrlプロパティが追加されました。
このプロパティを利用すると、イベントのポストバック先を別のページにすることができます。

10 行でズバリ !! Web アプリケーションの画面遷移 (C#)
こちらのページに画面遷移の方法と特徴が簡単にまとめられています。

さて、これだけでは、同じウインドウで表示されてしまいます。
ポストバック先のページを別のウインドウで表示したい場合はどうすればよいのでしょうか。
これは簡単に使えるプロパティがありませんので、ボタンのOnClientClickプロパティで
aspnetForm.target='_blank'
とJScriptを記述してやり、表示されるウインドウのターゲットを変更してやるとよろしいです。

2007年02月07日

グルメがテーマのオリコンランキング 好き嫌いの変化でわかった、若者の胃の現状

http://contents.oricon.co.jp/news/gourmet/41886/#rk

年を重ねるごとにお菓子を食べられなくなってきてたのですが、みんなそうなんですねえ。
10代のころは一袋はペロリだったんですが、今は嫁と一袋で十分です。

カップラーメンは体に悪そうとかいうのではなく、半分ぐらいで気持ち悪くなってしまいます。
とくにチキンラーメンが食べられなくなってしまいました。