2011-11-07 11 views
0

ダイナミックテーブルを作成する関数をvbクラスファイルに作成しました。私はこれを使用して、クリックされたボタンに依存するテーブルを作成する予定です。この関数は、私のaspxページのプレースホルダを参照していますが、 "placeHolder1は宣言されていません"となっています。参照クラスファイルのプレースホルダ?

フォームのコントロールにクラスファイルからアクセスするにはどうすればよいですか?

おかげ

クラスファイルの断片を次のように

Public Shared Function CreateTable() As Table 
    'handle either total or breakdown 
    Select Case format 
     Case "breakdown" 
      placePayDetails.Controls.Clear() 
      Dim tblPayDetails As Table = New Table() 
      placePayDetails.Controls.Add(tblPayDetails) 

など

+0

は、コードを表示します。あなたはたぶん一方の側から他方の側への参照を渡すことを忘れているでしょう – Icarus

+0

編集された質問。おかげで – ajguk

答えて

1

を設定していますあなたのCreateTable関数は、パラメータとしてplacePayDetails(たぶんContentPlaceHolder型)を受け取る必要があります。

この関数を呼び出すページでは、このプレースホルダをマークアップのどこかに定義する必要があります。

例:

Public Shared Function CreateTable(byVal placePayDetails as ContentPlaceHolder) As Table 
    'handle either total or breakdown 
    Select Case format 
     Case "breakdown" 
      placePayDetails.Controls.Clear() 
      Dim tblPayDetails As Table = New Table() 
      placePayDetails.Controls.Add(tblPayDetails) 
+0

私は思う正しいトラックに私を得るおかげで。 – ajguk

+0

これはより良い解決策です。 – Eonasdan

0

クラスファイルは、ページの概念がありません。あなたは、その関数の結果は、ASPXのバックエンドで、ページに戻りたいあなたのクラスの機能を持っている場合は、関数の結果は、文字列として返され、その後、あなたの更新による内容

Dim tblPayDetails As Table = DoSomething() 
placePayDetails.Controls.Add(tblPayDetails)