ポストバックイベントを発生したコントロールを調べる
ASP.NET(VS2003)でアプリケーションを開発しているときに、ポストバック(PostBack)イベントを発生させたコントロールを調べる方法。ボタンコントロールだとClickイベントやCommandイベントでハンドリングしやすいですが、ドロップダウンリストだとSelectedIndexChangedイベントしかないので意図したタイミングでメソッドを呼べないことがあります。(設計が悪いんでしょうか・・・)
動的にコントロールを生成した場合も状況により、さっきまで存在したコントロールがなくなった場合などにイベントを呼んでくれないので、覚えておくと便利です。
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
~何らかの初期化処理~
}
else
{
foreach(string key in Request.Form.AllKeys)
{
if(key.Equals("__EVENTTARGET"))
{
if(Request.Form[key].Equals("補足したいコントロールのID"))
{
~何らかの処理から
}
}
}
}
}
« DataSetをXMLで書き出す時の注意点 | トップページ | C#で圧縮ファイルを生成する »
「03 web」カテゴリの記事
- ASP.NETでエクセル操作 その4(2008.08.18)
- ASP.NETでエクセル操作 その3(2008.08.15)
- ASP.NETでエクセル操作 その2(2008.08.14)
- ASP.NETでエクセル操作 その1(2008.08.13)
- ASP.NET AJAX AutoCompleteコントロール(2008.05.01)
コメント