質問

いユーザー管理の名DateTimeUCをtextboxes、そのマークアップ:

<asp:TextBox ID="dateTextBox" runat="server"></asp:TextBox>
<asp:TextBox ID="timeTextBox" runat="server"></asp:TextBox>

私は動的に作成のこのコントロールを他のユーザー制御:

Controls.Add(GenerateDateTime(parameter));
private DateTimeUC GenerateDateTime(SomeParameter parameter)
{
    DateTimeUC uc = new DateTimeUC();
    uc.ID = parameter.Name;
    return uc;
}

にしたものを描画するページでは、DateTimeUC描画します。までのようになります:

protected override void Render(HtmlTextWriter writer)
{
    base.Render(writer);

    StringBuilder builder = new StringBuilder();
    StringWriter swriter = new StringWriter(builder);
    HtmlTextWriter hwriter = new HtmlTextWriter(swriter);
    base.Render(hwriter);
    string s = builder.ToString();
}

sは空のコンポーネントスイートです。カウントが0になります。なぜですか?

役に立ちましたか?

解決

使用してください LoadControl( "your_user_control_app_relative_path.ascx" ) 方法ではなく"DateTimeUC uc=new DateTimeUC();"

他のヒント

またこの問題を自分ら。を使用する必要があり、LoadControl()メソッドがあります。チェック このページ ます。

たいと思います追加の制御のページのフォーム機種判別等はしていないので、形態そのものです。

コード:

Controls.Add( GenerateDateTime(parameter) );

う:

Page.Form.Controls.Add( GenerateDateTime(parameter) );
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top