- PR -

ユーザーコントロールの値を取得し、WebFormに設定する

投稿者投稿内容
う〜にん
会議室デビュー日: 2005/01/02
投稿数: 19
投稿日時: 2005-01-05 15:09
たつごろーさん

説明不足で申し訳ありませんでした。
動かないというのはご指摘のものです。
引用:

ASP.NETのWebフォーム側で出てるんじゃないかな。
別のプロジェクトのWebフォームにこのコントロールを埋め込めるか試してみてはいかが。


新たにプロジェクトを起こし実行してみましたが、
同じエラーが出ました。

追加ですが、赤文字で
'/WebApplication1'アプリケーションでサーバーエラーが発生しました。
行 2: <%@ Register TagPrefix="Custom" Namespace="CustomControls" Assembly = "CustomControls" %>
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-01-05 15:28
引用:

新たにプロジェクトを起こし実行してみましたが、



新しいプロジェクトで、作ったコントロールを貼り付ける作業をしましたか?
ソースコードのコピペですか?

コントロールを貼り付けてみてください。

_________________
たつごろー
codeseek
こみゅぷらす
う〜にん
会議室デビュー日: 2005/01/02
投稿数: 19
投稿日時: 2005-01-05 17:38
やっとつながりました。
引用:

新しいプロジェクトで、作ったコントロールを貼り付ける作業をしましたか?
ソースコードのコピペですか?
コントロールを貼り付けてみてください。


<Custom:MyTextBox Text=" " OnTextChanged = "Text_Changed" id = "Box" runat=server/>

をそのまま利用していました。

ただ、これだとデザインで何もみれなかったり”コントロールのエラー”だったり、
理解出来ていないんです。。。
正直煮詰まっています。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-01-05 17:56
引用:

ただ、これだとデザインで何もみれなかったり”コントロールのエラー”だったり、
理解出来ていないんです。。。
正直煮詰まっています。



できれば、どこで、どうエラーになっているかを書いてください。

デザインで見れないというのは、Render時点で失敗しているかもしれません。
うまくいけば、デザイン時にも表示されます。

カスタムコントロールの作成は、WebFormよりも楽ではありません。
もしも、時間が掛かりすぎてはお仕事にも支障が出るようでしたら、同等の別の手段を考えられてはいかがでしょう。

中身を理解せずに使いたいということなら、まずは、サンプル動かしましょう。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconservercontrolssamples.asp

サンプルをビルドするには
を読んでやってみてください。

_________________
たつごろー
codeseek
こみゅぷらす
う〜にん
会議室デビュー日: 2005/01/02
投稿数: 19
投稿日時: 2005-01-05 18:46
言葉足らずで申し訳ありません。

デザイン画面で表示されているコントロールには通常その名称が
表示されていると思いますが、
そこのところが赤い文字で”コントロールのエラー”でした。

そして今はデザインとHTMLの切り替えが出来なくなっています。
コントロールを配置して一度閉じて再度開くと

このWEBフォームのクラスファイルを読み込めませんでした。このビューを閉じエラーを修正してからwebフォームを再度開いて下さい。

とメッセージが表示され、OKボタンを押下したらHTML画面で見る事の出来る
内容が表示されますが、上述しましたデザインとHTMLとの切り替えが出来なくなります。
おっしゃるとおりRenderでおかしいんでしょうね。

でも自分ではこの修正が出来なくて・・・

ユーザーコントロールの使用を目的としており
カスタムコントロール(ハンドリング等も自前で行いスキル要という認識でいます)
は別物と思っていたのですが、
同じレベルでしょうか?

今の自分には難しすぎる様です。
ユーザーコントロールのイベントをWEBページで拾う事が出来ているので
(最初に記述したやりかたでですが)
あとは最初に教えていただいていた
Public Property Text() As String
なんかですぐ取得できるものと思っていました。

飲み込みが悪く本当に申し訳ありません。
再度検討します。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-01-05 19:14
引用:

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconservercontrolssamples.asp

サンプルをビルドするには
を読んでやってみてください。



または、こっちの方が短くて判りやすいかもしれません。

.NET Framework クラス ライブラリ
IPostBackDataHandler インターフェイス
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemWebUIIPostBackDataHandlerClassTopic.asp

まずは、ぜひ、これをやってください。
MSDNに書かれている以外の方法でやっていませんか?だとしたら、動かすのはかなり困難です。

引用:

Public Property Text() As String


に値を渡すためにIPostBackDataHandlerを実装するのです。
ブラウザからポストバックされてきたデータを、サーバ側でどう解釈するかを記述します。
値を取得するコントロールには、名前にme.UniqueIDを使わなければいけません。

_________________
たつごろー
codeseek
こみゅぷらす
う〜にん
会議室デビュー日: 2005/01/02
投稿数: 19
投稿日時: 2005-01-07 17:07
にしざきさん
おっしゃる通り、プロパティを追加したら値を取得する事が出来ました。
ありがとうございます。

たつごろーさん
今チュートリアル等をみながら勉強中です。
気にかけていただいていた通り時間の制約もあり、
あまり時間をかけられないのですが。。。
ただ、教えて頂いた事を実現させないとどうにもならないところも出てきたので、
がんばります。
よいご連絡が出来る様に。

とても心細い思いをしながらこちらに相談させて頂いていたのでがんばれました。
みなさん、本当にありがとうございます。
う〜にん
会議室デビュー日: 2005/01/02
投稿数: 19
投稿日時: 2005-01-07 17:08
たつごろーさん
やっと出来ました。
といっても教えて頂いたURLのSourceを実行させる事ですが。。。

デザインで出ていたエラーはいろいろやっているうちに混乱して
違うbinのdllを参照したり名前が不一致だったりとともて初歩的なところでした。

みなさんにご指導して頂いた内容をもう一度見直す事で出来ました。
ありがとうございました。

[ メッセージ編集済み 編集者: う〜にん 編集日時 2005-01-11 18:47 ]

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