2012-03-26 18 views
2

非常にシンプルなユーザーコントロールをC#で作成し、dllにコンパイルしました。私はオブジェクトのタグを使用してaspxページにそのコントロールを配置し、JavaScriptでそれを試してみてください。私はちょうどうまく動作する他のコントロールがありますが、何らかの理由でこれはしません。ここでは、コードがあります:ASPXページのユーザーコントロールがJavaScriptで動作しない


using System.Windows.Forms; 

namespace FileBrowser { 
    public partial class theBrowser : UserControl { 
     public theBrowser() { 
      InitializeComponent(); 
      MessageBox.Show("TBI"); 
     } 
     public string theFile = "foobar"; 
    } 
} 

ここでは、Webページのコードは次のとおりです。

<object id='fileBrowserControl' classid='http:FileBrowser.dll#FileBrowser.theBrowser'> 
      <span>File control did not initialize.</span> 

その後

<script type="text/javascript"> 
    $(function() { 
var mfc = $('#fileBrowserControl')[0]; 
alert(mfc.theFile); 
    }); 

私はページをロードすると、メッセージボックスがあることを示しますコンストラクタ解凍されましたが、javascriptアラートによってコンポーネント文字列に「未定義」が返されます。これは、実際のバージョンでは、私はまた、JavaScriptからパブリック関数を呼び出すことはできません。私はエラーが発生します。 'オブジェクトはこのプロパティまたはメソッドをサポートしていません。'

私は明らかに何かが本当にシンプルに欠けていますが、私はそれを見ません。助けてくれてありがとう。 Jon

+0

があなたの代わりにフォームのウェブユーザーコントロールを使用するつもりでしたユーザーコントロール? –

+0

問題ではないようです。問題の一部は、ActiveXコントロールとして動作するコントロールを作ったことで、私はVS2008でそのことを把握できなかったということです。 – Jon

+0

ASP.NETまたはWinFormsを使用していますか? – jrummell

答えて

1

ええと、ASP.NETマネージドコードは自動的にクライアントサイドスクリプトにフックされません。あなた自身でそれを配線する必要があります。 )は、Webユーザーコントロール

2としてユーザーコントロールを作成します

1)あなたのaspxページに登録します:私の提案はするだろうhttp://msdn.microsoft.com/en-us/library/sbz9etab.aspx

3)ユーザーコントロールのコードビハインドでは、後にそして、あなたは「theFile」を変数

を使用してJavaScriptでその値にアクセスすることができます)

Page.ClientScript.RegisterStartupScript(Page.GetType(),"inject","var theFile='" + this.theFile + "';",true); 

4:それはこのようなものを使用して、コントロールのスクリプトにあなたの「theFile」プロパティの値をプッシュし、ロードします

関連する問題