1

ページの 1 つに、実行時に行が生成されるテーブルがあります。これらの行のコンテンツを独自のコントロールに移動し、実行時にプロパティを設定して、プレゼンテーションをコード ビハインドから分離したいと考えています。しかし、期待どおりに機能していません。

行のようなコントロールが UserControl から継承されている場合は、これを実行して実行時にコントロールを作成できます。

MyControl row = (MyControl)LoadControl("~/controls/MyControl.ascx");

次に、それをテーブルに追加したいと思いました。

MyTable.Rows.Add(row);

しかし、row は System.Web.UI.HtmlControls.HtmlTableRow または System.Web.UI.WebControls.TableRow から継承しないため、それを行うことはできません。ただし、コントロールをこれら 2 つのうちの 1 つから継承するようにすると、上記の LoadControl 呼び出しは、コントロールが UserControl から継承されていないと不平を言います。

ここでの幸せな解決策は何ですか?追加情報が必要な場合は、お問い合わせください。

4

1 に答える 1

4

あなたがやろうとしていることはこれだと思います:

    MyControl row = (MyControl)LoadControl("~/controls/MyControl.ascx");
    TableCell newCell = new TableCell();
    newCell.Controls.Add(row);
    TableRow newRow = new TableRow();
    newRow.Cells.Add(newCell);
    MyTable.Rows.Add(newRow);

あなたが述べた問題は、コントロールが複数の基本クラスから継承できず、コントロールを直接 Rows コレクションに追加できないことです。最初にラップする必要があります。よりクリーンなソリューションがあるかもしれませんが、これは機能します。

于 2009-04-30T15:21:16.647 に答える