我需要将这个新按钮移动到已经存在的DIV中。在我看来,这应该有效,但不是。我做错了什么?
Button button5 = new Button();
button5.Text = "Five";
button5.CssClass = "buttonCSS";
button5.Click += new EventHandler(button5_Click);
button5.ID = "button5";
this.Controls.Add(button5);
string myscript = @"
var navFooter = document.getElementById('NavFooter');
var button5 = document.getElementById('button5');
navFooter.Controls.Add(button5);
";
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", myscript, true);
我知道找到了两个物体。有任何想法吗?
(注意:我不能使用jQuery。)
谢谢。
答案 0 :(得分:2)
Controls.Add()
是C#,而不是JavaScript。要使用JavaScript将元素附加到其他元素,请使用appendChild()
:
navFooter.appendChild(button5);
答案 1 :(得分:0)
你为什么要通过javascript执行此操作?
如果您将包含<div>
更改为<asp:Panel>
,则可以将新创建的按钮直接添加到此面板中。 <asp:Panel>
简单地呈现为<div>
html元素,您可以将CssClass添加到此元素中以保持样式相同。
让您在服务器端获得更好的控制权,而无需担心javascript。特别是因为你正在做服务器端的工作。
答案 2 :(得分:0)
只需将runat =“server”添加到div中,然后将其添加到后面的代码中:
<div id="dvButtonContainer" runat="server" ... >
另一种选择是使用Panel,因为它总是输出div:
<asp:Panel ID="dvButtonContainer" runat="server" ... >
在后面的代码中:
Button button = new Button();
dvButtonContainer.Controls.Add(button);
编辑:由于无法访问DIV,以下是解决方法:
Button Button1 = new Button();
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", String.Format("document.getElementById(\"div1\").appendChild({0});", Button1.UniqueID), true);