- PR -

ascxをコードビハインド側でTextBoxと同じように扱う方法

1
投稿者投稿内容
タクマン
常連さん
会議室デビュー日: 2004/06/14
投稿数: 42
投稿日時: 2005-09-22 07:23
aspxからascxをインクルードすることができますが、ascxをコードビハインドのソース上で
TextBoxやLabelと同じように扱うにはどのような手続きが必要なのでしょうか?
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/219aspcmnparts/aspcmnparts.html

ttp://ja.gotdotnet.com/quickstart/aspplus/doc/webpagelets.aspx
を見ながらサンプルを作ったのですが、どうしてもエラーになってしまいます。
実現させたいのは
ascxの画面をvisibleをtrue・falseを動的に行って、表示・非表示を行いたい
ascxの画面内のコントロール(TextBoxやLabel)に対してincludeしているaspx側のコードビハインドで、値を設定したり、表示・非表示させたりしたい
同様に、ascxの画面内のコントロール(Repeater)に対して表示するセル?を動的にさせたい
です。
ascxの画面を表示・非表示、ascxのコントロール(TextBoxやLabel)に対して値を設定はどうしてもやらなければなりません。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-09-22 09:21
タクマンさん、お早うございます。

引用:

aspxからascxをインクルードすることができますが、ascxをコードビハインドのソース


ちょっと待って下さい。インクルードしてるんですか?
VisualStudo を使用して開発しているのであれば、MSDNライブラリもお手元にあるのではないかと思いますが、その中の「Visual Basic および Visual C# の概念」-「チュートリアル : Web ユーザー コントロールの作成」というドキュメントに、ascx=ユーザーコントロール を使用する手順が説明されています。


囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-09-22 09:40
こんにちは。

引用:

ascxの画面をvisibleをtrue・falseを動的に行って、表示・非表示を行いたい


まさにそのまま。Visible を true・false すると動的に表示・非表示します。

引用:

ascxの画面内のコントロール(TextBoxやLabel)に対してincludeしているaspx側のコードビハインドで、値を設定したり、表示・非表示させたりしたい


これは直接は無理(出来ない事もないが)なので、ユーザコントロールが、そのためのメソッドやプロパティを公開するとよいでしょう。
タクマン
常連さん
会議室デビュー日: 2004/06/14
投稿数: 42
投稿日時: 2005-09-22 20:24
>きくちゃんさん
正確にはインクルードではありませんよ。
イメージしやすいようにインクルードと書きました。
参考文献の紹介ありがとうございます。

>囚人さん
visibleのtrue・falseで可能だということはわかりました。
ascx内でpublicなメソッドを用意してsetさせることが出来れば出来ないことはないように思います。
イメージと実際の実行結果が結びつかないんですよね。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-09-23 01:41
こんにちは。

引用:

ascx内でpublicなメソッドを用意してsetさせることが出来れば出来ないことはないように思います。
イメージと実際の実行結果が結びつかないんですよね。



コントロールが「何を表現しているか」によると思います。
例えば、Calendar コントロールはどうでしょう。

Calendar はテーブルやらリンクやらで出来ていますが、使う側からしたら、「日付10を担当しているリンクボタンが押された」ではなく、「カレンダーコントロールの日付10が押された」と判断したいですよね。
「カレンダーコントロールの月の表示を担当しているラベルを10月に変える」より、「カレンダーコントロールのタイトルを10月に変える」の方が良いように思います。

ただ単純にコントロール群をグルーピングするために、ユーザーコントロールを使うのではなく(もちろんそうすべき要件もあると思いますが)、「何を表現するユーザーコントロールなのか」を明確にすれば、イメージと実際の実行結果に何か関連付けさせることは出来ないでしょうか。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-09-24 06:21
引用:

タクマンさんの書き込み (2005-09-22 20:24) より:

正確にはインクルードではありませんよ。
イメージしやすいようにインクルードと書きました。


  誰にとって?
 分類としては MVP for ASP/ASP.NET ですが、ASP のことは全く知らない私にとって、「インクルード?ASP.NET でそんなことできたっけ?」なんですけど...
 私にとっては「貼り付ける」のほうがイメージしやすかったです。というか、操作もそのままだし。

 ということで、より一般的、マニュアルに記載されている言葉を使う方が、掲示板では伝わりやすい=的確な返答を受けやすいです。


引用:

ascx内でpublicなメソッドを用意してsetさせることが出来れば出来ないことはないように思います。
イメージと実際の実行結果が結びつかないんですよね。


 これが何を意味しているのか、よくわかりませんでした。
 たとえば、TextBox に入力するのが「検索文字列」であれば、"SearchString"というプロパティを用意して、TextBox.Text の値を入出力すればいいのでは?


 あと、Visible = false だと、HTML に出力されませんから、その辺はご注意を。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)