2011-08-23 5 views
5

이 새로운 버튼을 이미이 DIV에 옮겨야합니다. 이것은 그것이 작동해야하지만 그렇게하지 않는 것 같습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?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를 사용할 수 없습니다)

감사합니다.

답변

2

Controls.Add()은 JavaScript가 아니며 C#입니다. 자바 스크립트와 다른 요소에 요소를 추가하려면 appendChild() 사용

navFooter.appendChild(button5); 
+0

ID는 문제가 아닙니다. 나는 통제권을 얻고있다. 예를 들어, 경고 할 경우 (button5.value); "Five"를 반환합니다. 그래도 고마워. – user390480

+0

@ user390480, 나는 당신이 통제권을 얻고 있다고 언급 한 것을 보았습니다. 제 대답의 첫 부분은 단지 제안 일뿐입니다. 대답의 두 번째 부분에서 문제를 해결해야합니다. 당신의'Controls.Add()'를'.appendChild (button5)'로 대체 했습니까? 'Controls.Add()'는 JavaScript가 아니며 C#입니다. '.appendChild()'는 JS의 경우와 같습니다. –

+0

appendChild! 그게 전부 야. 고맙습니다. – user390480

0

당신이 자바 스크립트를 통해이 일을하는 이유는 무엇입니까?

<div><asp:Panel>으로 변경하면 새로 만든 버튼을이 패널에 바로 추가 할 수 있습니다. <asp:Panel>은 단순히 <div> html 요소로 렌더링되며 CssClass를 추가하여 스타일을 동일하게 유지할 수 있습니다.

전체적으로 서버 측을보다 강력하게 제어 할 수 있으므로 자바 스크립트에 대해 걱정할 필요가 없습니다. 어쨌든 서버 측 작업을 수행하고 있기 때문에 특히 그렇습니다.

+0

해당 코드에 액세스 할 수 없습니다. DIV는 이미 있습니다. 그래도 고마워. – user390480

0

그냥 사업부에 RUNAT = "서버"를 추가하고 뒤에 코드에서 추가

<div id="dvButtonContainer" runat="server" ... > 

어쨌든 사업부를 출력으로 또 다른 옵션이 패널을 사용하는 것입니다

<asp:Panel ID="dvButtonContainer" runat="server" ... > 

그리고 뒤에있는 코드 :

Button button = new Button(); 
dvButtonContainer.Controls.Add(button); 

편집 : 이후 DI V에 액세스 할 수없는 경우 다음 해결 방법을 사용하십시오.

Button Button1 = new Button(); 

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", String.Format("document.getElementById(\"div1\").appendChild({0});", Button1.UniqueID), true); 
+0

해당 DIV 코드에 액세스 할 수 없습니다. DIV는 이미 거기에 있고 나는 그것을 바꿀 수 없다. – user390480