C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Webユーザーコントロールの動的作成について


(過去ログ 104 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■61974 / inTopicNo.1)  Webユーザーコントロールの動的作成について
  
□投稿者/ ひろこ (1回)-(2011/09/13(Tue) 20:57:14)

分類:[ASP.NET (VB)] 

お世話になります。

環境:ASP.NET(VB) VisualStudio2005

VB.NETはある程度わかりますがASP.NETは最近始めたばかりです。

質問内容:

Webユーザーコントロールを動的に作成しさらにPanelも動的に作成して
その後PanelにWebユーザーコントロール組み込む方法はあるのでしょうか。
下記ソースだとエラーが出てしまいます。
Panelでなくても構わないのですが、ユーザーコントロールの配置を
自由に設定できる様にしたいのです。
Panelに入れないと自由に配置できないのでそうしていますが
この方法は邪道でしょうか。


概要:

@ボタンを貼り付けただけのWebユーザーコントロールを作成
・静的に貼付けたPanelにWebユーザーコントロールをAddする。->OK
・動的に作成したPanelにWebユーザーコントロールをAddする。->NG

エラーメッセージ
型 'Button' のコントロール 'ctl03_Button1' は、runat=server を含む
form タグの内側に置かなければ成りません。


Partial Public Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim uc1 as WebUserControl1

uc1 = CType(LoadControl("UC.ascx"), WebUserControl1)

'Dim Panel1 as New Panel ←●動的にPanelを作成するとエラーになってしまう
Panel1.Controls.Add(uc1)

'Me.Controls.Add(Panel1) ←↑をコメントにして静的にPanel1を作っておくとエラーは出ません。

Panel1.Style.Item("TOP") = (150).ToString() + "px"
Panel1.Style.Item("LEFT") = (100).ToString() + "px"
Panel1.Style.Item("WIDTH") = (200).ToString() + "px"
Panel1.Style.Item("HEIGHT") = (200).ToString() + "px"

End Sub

End Class


よろしくお願いいたします。
引用返信 編集キー/
■62011 / inTopicNo.2)  Re[1]: Webユーザーコントロールの動的作成について
□投稿者/ todo (166回)-(2011/09/15(Thu) 14:48:34)
form タグの内側にPlaceHolderを用意して、PlaceHolderにコントロールを追加する

http://msdn.microsoft.com/ja-jp/library/wwbbhe6w(v=vs.80).aspx
引用返信 編集キー/
■62015 / inTopicNo.3)  Re[2]: Webユーザーコントロールの動的作成について
□投稿者/ ひろこ (3回)-(2011/09/15(Thu) 17:54:58)
No62011 (todo さん) に返信
> form タグの内側にPlaceHolderを用意して、PlaceHolderにコントロールを追加する
>
> http://msdn.microsoft.com/ja-jp/library/wwbbhe6w(v=vs.80).aspx

todo様

リンク先を見るとわかりました。
ありがとうございます。

下記サンプルです。

Dim Panel1 as New Panel

Panel1.BackColor = Drawing.Color.Yellow

Me.Controls.Add(Panel1)


Panel1.Style.Item("position") = "absolute"

Panel1.Style.Item("WIDTH") = 100 & "px"
Panel1.Style.Item("HEIGHT") = 100 & "px"

Panel1.Style.Item("TOP") = 600 & "px"
Panel1.Style.Item("LEFT") = 500 & "px"


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -