- - PR -
ASP.NET ユーザコントロールについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-15 10:22
こんにちは。NKといいます。
VB.NETでWEBページを作ろうと思っているのですが、 ユーザコントロールの作成および使用がうまくいきません。 内容としては、デバッグを実行すると 「オブジェクト参照がオブジェクト インスタンスに設定されていません」 と出力されてしまいます。 下記URLにソースを固めたものを格納しておくので、 お分かりになる方は教えていただけないでしょうか? よろしくお願いします。 ソース格納URL http://nknet.dyndns.org/dl_files/UC00000100.lzh | ||||||||
|
投稿日時: 2005-10-15 10:54
う〜ん、ソースコードをリンク先へ掲載しご質問を行うのは余りお勧めできませんよ。(^^;
「デバッグ作業を依頼」しているように、受け止められてしまいます。(丸投げともいう) 再現する必要最低限のコードもしくは文章にて、この掲示板に掲載しご質問されることをお勧め致します。 | ||||||||
|
投稿日時: 2005-10-15 11:19
こんにちは、じゃんぬ です。
ウイルス云々の話もありますし、情報の共有という概念上、 あぷろだなどの利用は、話が見えにくくなるのでお勧めできません。 で、変わりにソースを貼ろうと思ったのですが、 せめてご本人で例外が起きる場所は特定してください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-10-15 11:26
申し訳ありませんでした。確かにそのとおりですね。
わからない箇所がわからない状態だったので・・・TT プログラムの詳細ですが、 webform1 から uc00000100 を呼び出したいと考えています。 webform1:vb部 Public Class WebForm1 Inherits System.Web.UI.Page Protected WithEvents Pairedlistbox1 As UserControlSample.PairedListBox Protected WithEvents UC000001001 As UserControlSample.UC000000100 #Region " Web フォーム デザイナで生成されたコード " 省略 #End Region Private Sub WebForm1_Load(ByVal Sender As System.Object, ByVal e As System.EventArgs) Handles WebForm1.Load, MyBase.Load If Not IsPostBack Then ' ブラウザが最初にこのページにヒットしたときは、true と評価します。 With UC000001001 .TextLabel1 = "22" .TextLabel2 = "22" .TextLabel3 = "22" End With webform1:HTML部 <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="UserControlSample.WebForm1"%> <%@ Register TagPrefix="UserControlSample" TagName="UC000000100" Src="UC000000100.ascx" %> <%@ Register TagPrefix="UserControlSample" TagName="PairedListBox" Src="PairedListBox.ascx" %> 画面には <P><!-- --><USERCONTROLSAMPLE:UC000000100 id="UC0000001001" runat="server"></USERCONTROLSAMPLE:UC000000100></P> uc00000100:vb部 Public Class UC000000100 Inherits System.Web.UI.UserControl Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents Label_migi1 As System.Web.UI.WebControls.Label Protected WithEvents Label2 As System.Web.UI.WebControls.Label Protected WithEvents Label_migi2 As System.Web.UI.WebControls.Label Protected WithEvents Label3 As System.Web.UI.WebControls.Label #Region " Web フォーム デザイナで生成されたコード " ' この呼び出しは Web フォーム デザイナで必要です。 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init ' CODEGEN: このメソッド呼び出しは Web フォーム デザイナで必要です。 ' コード エディタを使って変更しないでください。 InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' ページを初期化する ユーザー コードをここに挿入します。 If Not IsPostBack Then ' ブラウザが最初にこのページにヒットしたときは、true と評価します。 Call SetProperties() ' コントロールに関する初期のプロパティを設定します。 End If End Sub ' コントロールのプロパティ値を格納するためのプライベート変数 (既定値も設定されています)。 Private mLabel1 As String = "ListBox1" ' 最初のリスト ボックス全体に適用されるラベル Private mLabel2 As String = "ListBox2" ' 2 番目のリスト ボックス全体に適用されるラベル Private mLabel3 As String = "ListBox3" ' 3 番目のリスト ボックス全体に適用されるラベル Public Property TextLabel1() As String ' 最初のラベルのテキストに関するプロパティ Get Return mLabel1 End Get Set(ByVal Value As String) mLabel1 = Value Call SetProperties() End Set End Property Public Property TextLabel2() As String ' 2 番目ラベルのテキストに関するプロパティ Get Return mLabel2 End Get Set(ByVal Value As String) mLabel2 = Value Call SetProperties() End Set End Property Public Property TextLabel3() As String ' 3 番目ラベルのテキストに関するプロパティ Get Return mLabel3 End Get Set(ByVal Value As String) mLabel3 = Value Call SetProperties() End Set End Property Private Sub SetProperties() ' ユーザー コントロール コンテナから変更できる構成コントロールのプロパティを設定します。 Label1.Text = mLabel1 Label2.Text = mLabel2 Label3.Text = mLabel3 End Sub End Class uc00000100:HTML部 <%@ Control Language="vb" AutoEventWireup="false" Codebehind="UC000000100.ascx.vb" Inherits="UserControlSample.UC000000100" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %> 下記抜粋 と記載しています。現時点でプログラムを実行すると、 webform1:vb部 の With UC000001001 .TextLabel1 = "22" で オブジェクトがインスタンスに設定されていません。とメッセージが 出力され落ちてしまいます。 説明が下手なのですが、よろしくお願いします。 | ||||||||
|
投稿日時: 2005-10-15 11:48
こんにちは、じゃんぬ です。
UC000001001 か、TextLabel1 がインスタンス化されていないのでしょう。 流石にこれは勉強して理解しないともっと先でも困ることになると思います。 また、例外の名前から検索することで、何が原因かもおのずとわかるハズです。 NullReferenceException クラス _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-10-15 12:00
ながっ!というのは、置いといて、
と
の、コントロールのIDが違いますよね? # 他にも気になる点はありますが、まずは... | ||||||||
|
投稿日時: 2005-10-15 12:19
ご指摘ありがとうございます。
修正したら動作しました^^ 単純ミスで申し訳ないです・・・ 初めてユーザコントロールを使って見たので、 どこを調査すればわかりませんでした。 本当に、ありがとうございました! |
1