1

これは比較的簡単ですが、私は明らかにステップを逃しており、問題を解決するためのサポートを見つけることができません。

動的に作成されたコントロールをページに追加しようとしていますが、それは発生していません。これが私がしていることの簡略版です:

Button button = new Button();
button.Click += new EventHandler(btnTakeAction_Click);
button.Text = "Take Action";
button.ID = "btnTakeAction";
fullPayOnlyCoupon = string.Format(
    "<div>Some random text. I want my control to show up here: {0}</div>", button);

それが有効であると仮定しbtnTakeAction_Clickます。また、これではボタンが正しく表示されないことはわかっていますが、代わりにのようにレンダリングするだけですWebControl.Button。しかし、それが私が探しているもののアイデアです。文字列内で動的に作成されたマークアップの特定の場所に表示されるボタンです。私が理解していることから、このボタンコントロールを、すでにページ上にある別の既存のコントロールに追加する必要があります。だから私はこれを試しました:

Button button = new Button();
button.Click += new EventHandler(btnTakeAction_Click);
button.Text = "Take Action";
button.ID = "btnTakeAction";
ControlOnAspxPage.Controls.Add(button);

しかし、ControlOnAspxPage動的に作成されたボタンはレンダリングされません。

4

2 に答える 2

3

プレースホルダーコントロールを使用してみてください。

<asp:PlaceHolder
  EnableTheming="True|False"
  EnableViewState="True|False"
  ID="string"
  OnDataBinding="DataBinding event handler"
  OnDisposed="Disposed event handler"
  OnInit="Init event handler"
  OnLoad="Load event handler"
  OnPreRender="PreRender event handler"
  OnUnload="Unload event handler"
  runat="server"
  SkinID="string"
  Visible="True|False"
/>

と:

myButton = new HtmlButton();
myButton.InnerText = "Button 2";
PlaceHolder1.Controls.Add(myButton);
于 2012-08-14T18:05:53.193 に答える
0

イベントで毎回ダイナミックコントロールを作成する必要がありますPage_Load。説明は次のとおりです:http: //www.codeproject.com/Articles/8114/Dynamically-Created-Controls-in-ASP-NET

于 2012-08-14T18:06:46.873 に答える