- PR -

MultiView上に配置したFormView内のコントロールの取得について

1
投稿者投稿内容
ゆう
会議室デビュー日: 2006/10/03
投稿数: 4
投稿日時: 2006-10-03 19:23
はじめまして。お忙しい中申し訳ありませんが教えてください。
開発環境はVS2005(VB), WebApplicationです。

MultiView上にViewを2つ配置し、GridView、FormViewをそれぞれ配置しています。
FromViewのItemTemplateに配置してあるLabel1コントロールを
FindControlを使用し、取得したいのですが取得できません。

Dim oLabel as Label=CType(FromView1.FindControl("Label1"),Label)

(WebFormに直接FromViewを貼り付けた際には取得できます。)

初歩的なことで申し訳ありませんがご教授ください。
よろしくお願いいたします。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-10-03 22:51
FormViewはMultiViewに含まれているでしょうから、MultiViewからコントロールの
階層をたどってあげる必要があると思います。
C#で書くとこんな感じ。
  this.TextBox1.Text = ((Label)(((this.MultiView1.FindControl("View1")).FindControl("FormView1")).FindControl("Label1"))).Text;

#もう少し楽にするのはどうすればいいんだろ。
ゆう
会議室デビュー日: 2006/10/03
投稿数: 4
投稿日時: 2006-10-04 08:13
どっとねっとふぁんさん、ご回答ありがとうございます。

下記の様にやってみましたが取得できませんでした。

Dim oLabel As Label = CType(multiView.FindControl("View2").FindControl
("FormView1").FindControl("Label1"), Label)

FormViewの取得まではできるんですが。。。
Dim oFormView as FormView=CType(multiView.FindControl("View2").FindControl("FormView1"),FormView)

ゆう
会議室デビュー日: 2006/10/03
投稿数: 4
投稿日時: 2006-10-04 10:29
自己レスです。

WebPageを初めから作成することで解決しました。
お騒がせしました。

同一のフォームで一方は取得でき、もう一方は取得できない。
調査してみます。ありがとうございました。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-10-04 10:42
FormViewにデータソースは正しく設定されていますか?
手元でやってみて、データソースを設定せず、テンプレートの編集でLabelを
貼っただけだと同じようにLabelを見つけることができませんでした。
ゆう
会議室デビュー日: 2006/10/03
投稿数: 4
投稿日時: 2006-10-04 22:35
どっとねっとふぁんさん、ご指摘ありがとうございました。

View2に配置したFormViewはView1に配置したGridViewのSelectedValueを使い、
データを表示・編集するようにしていたのですがその際のDefault値を設定していなかった為、見つけることができなかったようです。

お手数をおかけしました。大変助かりました。
ありがとうございました。
1

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