将按钮移动到Div

时间:2011-08-23 14:45:32

标签: c# javascript asp.net html

我需要将这个新按钮移动到已经存在的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。)

谢谢。

3 个答案:

答案 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);