- - PR -
GridViewのEmptyDataTemplate内のコントロールへのアクセス方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-02-06 21:07
お世話になります。
表題そのままになりますが、 GridViewのEmptyDataTemplate内に置いたコントロールにアクセスしたいと考えています。 (データがない場合の新規追加用です) FooterTemplateの場合は、 TextBox test = (TextBox)GridView1.FooterRow.FindControl("TestBox"); てな感じでやると思うのですが、EmptyDataTemplateの場合には同様のアクセス方法が 見当たりません。試しにGridView1.FindControl("TestBox")としましたが駄目でした。 マイクロソフトの「プログラム☆簡単レシピ」 http://www.microsoft.com/japan/users/recipe/013/recipe4.aspx では、生成されたhtmlから当該コントロールを検索をしており、 以前質問させてもらったスレッド http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34683&forum=7 では、何でこの方法にしたのだろう?なんてことを書いたことがあるのですが、 もしかしてこのためなのかも?という気がしています。 直接アクセスできる方法は無いものでしょうか? よろしくお願いします。 |
|
投稿日時: 2007-02-06 21:56
とりあえずこんな方法で操作できます。
http://dotnetfan.org/blogs/dotnetfanblog/articles/632.aspx コントロールの階層が深くなってしまうので、そこをうまく取り出す必要がありますね。 |
|
投稿日時: 2007-02-07 07:36
どっとねっとふぁんさん、どうもありがとうございました。
この記事は確か前回の質問時にも読んだことがあるのですが、 その際は何故こうするのかが理解できなかった^_^;のですが、 今回はようやくですが理解できました。 無事、コントロールへのアクセスができ、値を取り出すことができました。 どうもありがとうございました。 |
|
投稿日時: 2007-02-07 09:49
GridViewのEmptyDataTemplateにDetailsViewをネストさせたらどうでしょうか。
GridViewにDetailsViewをネストさせる http://www.gxbrbwda.sv02.fsdotnet.net/Goto.aspx?id=070207VB-1 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 |
|
投稿日時: 2007-02-08 11:35
Accessさんアドバイスありがとうございます。
なるほど、いろんな方法があるんですね。 これは良いアイデアだと思い、試しにやってみました。 スペースの関係でEmptyDataTemplateを使っているため、 DetailsViewではなく、FormViewでFooterに似たデザインを作って EmptyDataTemplateに入れ子にしてみましたが、 FormView内のコントロールにアクセスするところでエラーが出て躓いてしまいました。 ということで、この方式はちょっと保留にして 今回はどっとねっとふぁんさんの方式を採用させてもらいました。 といいながらこれも捨てがたいので、入れ子じゃなけりゃいいんじゃないと、 GridViewの外に出して、MultiViewコントロールでデータがない場合に InsertモードにしたFormViewに切替、おおっ出来た・・・・ ん?これって、考えてみると(考えなくても)GridView,FormViewの いわゆる普通の使い方じゃないか!^_^; とりあえず、いろんな方法があるってことが分かりました。 どうもありがとうございました。 |
1