- - PR -
CreateUserWizard コントロールに追加したリストボックスへのアクセス
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-21 13:57
一応スレッドを変えました。
CreateUserWizard コントロールに追加したリストボックスへリストを追加したいのですがやり方を教えてください。 こんなソースでは駄目でした。(Rolesは追加したlistboxです。) Dim rolesListBox As ListBox = New ListBox() rolesListBox.Items.Add("guest") rolesListBox.Items.Add("member") CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("Roles").Controls.Add(rolesListBox) | ||||||||
|
投稿日時: 2007-09-21 14:38
FindControl("Roles")でコントロールを取得したとき、型がobjectになってしまうので
ここでListBox型にキャストします。 そこにたいしてItem追加を行えばいけると思います。 | ||||||||
|
投稿日時: 2007-09-21 14:59
(ListBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("Roles").item.Add("guest") このコードは間違ってますがこんな感じのことをおっしゃっているんですよね? 構文エラーなんですが、どうすれば良いでしょうか? 中途半端な知識しかなくて申し訳ありません | ||||||||
|
投稿日時: 2007-09-21 15:26
カッコを頭につけてキャストするのはC#。VBは、、CTypeでしたっけ。
| ||||||||
|
投稿日時: 2007-09-21 15:54
最初 CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("Roles"), ListBox).item.Add("guest") とやったのですが、「itemはSystem.Web.UI.WebControls.ListBox のメンバではありません。」 となりました。 itemを取ると「AddはSystem.Web.UI.WebControls.ListBox のメンバではありません。」 となってしまいます。 | ||||||||
|
投稿日時: 2007-09-21 16:09
CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("RolesList"), ListBox).Items.Add("member")
でできました。 すみません、FindControl("RolesList")の部分で名称を間違っているというオチでした。 IntelliSenseが効いていたので勘違いしてしまいました。 | ||||||||
|
投稿日時: 2007-09-21 16:10
'Item' ではなく 'Items' というメンバではないでしょうか。 CType, DirectCast ではなく TryCast を使った方が良いでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-09-21 16:33
再現しようとして書き間違えました。 上にも書きましたがIntelliSenseを使ってコーディングしてますので、前にはitemsとしてましたが、そもそもFindControlに指定する名称を間違えてました。
変更しました。 私の手元にはASP.NETの本は何冊かあるのですが、VBそのものの本はありません。 VBはよくわからずにサンプルを見ながらやっているのでこんなことも知りませんでした。 こんな初心者にもお勧めのVBの書籍がありましたらご紹介ください。 |