这是相对直截了当的,但我显然错过了一步,无法找到解决问题的支持。
我只是尝试将动态创建的控件附加到我的页面,但这不会发生。这是我正在做的事情的简化版本:
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
不会渲染我动态创建的按钮。
答案 0 :(得分: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);
答案 1 :(得分:0)
您必须每次在Page_Load
事件中创建动态控件。
这是一个解释:
http://www.codeproject.com/Articles/8114/Dynamically-Created-Controls-in-ASP-NET