2011-01-24 5 views
0

動的に作成されたGridview内で動的Webコントロールを使用する際に問題があります。 Webページにコントロールを追加するためのプラグインアーキテクチャを作成しようとしているので、コードビューでGridviewを作成する必要があります。問題を再現するためのコードの例を次に示します。動的GridViewsでButtonFieldsを使用する方法

ResultControl:WebBrowserコントロールその後

protected override void OnInit(EventArgs e) 
{ 
    GridView gv = new GridView(); 
    ButtonField f = new ButtonField(); 
    f.Text = "test"; 
    f.CommandName = "test"; 
    gv.Columnds.Add(f); 
    Controls.Add(gv); 
} 

DLL

のコードでWebフォームの背後にあります。

タイプのページ コントロール「POPlugin_ResultControl_ctl00」に
protected override void OnInit(EventArgs e) 
{ 
    ResultControl rc = new ResultControl(); 
    Controls.Add(rc); 
} 

このエラーは、「GridViewの」にrunat =サーバーとフォームタグの内側に配置されなければなりません。

私は答えを探していますが、私が見つけた唯一の事は、ファイルをExcelViewにエクスポートして、それが完全に関連しているかどうかわかりませんでした。おそらく私のGoogleのフーは弱いですが、私はこの状況でいくつかの光を放つ誰にも感謝します。

答えて

0

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.buttonfield.aspx。 "ButtonFieldクラスは、表示される各レコードののボタンを表示するために、データバインドされたコントロール(GridViewやDetailsViewなど)によって使用されます。しかし、あなたのコードにはデータソースが表示されません。

+0

前回の記事で私が思ったほど具体的ではなかったので、私が指定したテストコードがプラグインコードで実行されたために適用されると思いました。私は、私が作成したオーバーロードされたwebcontrolを含むdllを持っています。上記のコントロールのOnInitでは、私は上記のコードと全く同じですが、それらを動的に追加するページを表示すると、DLLのWebコントロールを追加すると、このようなエラーが発生します。 コントロール 'GridView'タイプの 'POPlugin_ResultControl_ctl00'は、runat = serverのフォームタグ内に配置する必要があります。 これは私がなぜ持っているのかわからない実際の問題です。 –

+0

コントロールをフォームタグに配置すると、エラーはなくなります。 –

+0

aspxページの特定のコントロールに追加していると思ったのでフォームタグに追加していませんでしたが、私はMasterコントロールページのContentHolderではなくページコントロールコレクションに追加していました。私が3日間のように躊躇している愚かなエラー。助けてくれてありがとう! –

関連する問題