CreateUserWizardコントロールのレイアウト(テンプレート)のみをプログラムで変更する方法はありますか?私は別のレイアウトを定義する(恐ろしいテーブルを使用しない)が、CreateUserWizardコントロールのユーザーのすべてのイベントの処理と作成を使用し続けます。 参考のため、次のコードは機能せず、テンプレートをまったく表現していない予期しない結果を生成します。 ITemplateの "InstantiateIn"メソッドは呼び出されません。CreateUserWizardコントロールのレイアウトを変更する方法は?
public partial class b : System.Web.UI.Page
{
protected void Page_Init(object sender, EventArgs e)
{
CreateUserWizard createUserWizard = new CreateUserWizard();
createUserWizard.CreateUserStep.ContentTemplate = new Template();
Panel1.Controls.Add(createUserWizard);
}
}
public class Template : ITemplate
{
void ITemplate.InstantiateIn(Control container)
{
container.Controls.Add(new TextBox() { ID = "UserName" });
container.Controls.Add(new TextBox() { ID = "Password" });
container.Controls.Add(new TextBox() { ID = "ConfirmPassword" });
container.Controls.Add(new TextBox() { ID = "Email" });
container.Controls.Add(new PlaceHolder() { ID = "ErrorMessage" });
}
}
}
これをprogrammaticalyに追加する理由は何ですか?または表形式を削除する理由はありますか?必要に応じて、マークアップ内のレイアウトをカスタマイズできます。そして4.0では、asp.netはそれをテーブルとしてそれ以上レンダリングしません。 – gbs
@gbs:ご提案いただきありがとうございますが、コントロールがコンパイル済みのdllで終了するため、マークアップはありません。また、私は単にテーブルを取り除こうとしているのではなく、解析されたXMLファイルからプログラムでContentTemplateを構築しています。したがって、レイアウトは非常に変化しやすいでしょう。私はLoginコントロールにも同様のアプローチを使用しましたが、これは完全に機能します。しかし、LoginコントロールはITemplateのInstantiateInメソッドを呼び出しますが、CreateUserWizardは呼び出されません。 – Bazzz