2012-02-22 3 views
0

아래 버튼 컨트롤을 준비하고 있습니다. 나는 아래에 언급 한 것과 같은 약간의 코드를 가지고있는 메소드를 가지고있다. 두 가지 방법으로 시도했지만 모두 작동하지 않습니다. onw와 btn 객체, 두 번째 직접 쓰기. N 개의 항목에 대해 실행 시간에 3 개의 버튼을 모두 생성해야합니다. 모든 버튼에는 ID가있는 경우를 제외하고 몇 가지 공통된 사항이 있습니다. 제게 그것이 작동하도록 약간 제안 해주세요.런타임에 asp 버튼 컨트롤을 작성하는 방법은 무엇입니까?

Button btn = new Button(); 
      btn.ID = "btnDress" + x; 
      btn.CommandName = "DressBtn"; 
      btn.Text = "Dressing"; 
      btn.CommandArgument = x.ToString(); 
      btn.UseSubmitBehavior = true; 
      btn.Click += new EventHandler(btnDress_Click); 

void draw() 
{ 
drawItem = drawItem + @" <div class=new_options> 
        <ul> 
         <li> 
          "+btn+ @"</li> 
         <li> 
          <asp:Button ID='btnSpInst_'" + x + @" runat='server' CommandName='SpeInstBtn' Text='Special Instruction' 
           OnClick='btnDress_Click' CommandArgument='" + x + @"' /></li> 
         <li> 
          <asp:Button ID='btnTopp_'" + x + @" runat='server' CommandName='ToppBtn' Text='Toppings' OnClick='btnDress_Click' CommandArgument='" + x + @"' /></li> 
        </ul> 
        <div class='clear'> 
        </div>"; 

      x++; 
} 

이 코드의 문제는 영원히 내가 내가 농사 시도 ASP를 버튼에 언급 한 것처럼, 일부 수정 매개 변수를 가지고 즉석에서 3 개 버튼을 작성해야 div에 있다는 것입니다 그러나 그는 문자열로 쓰기 작동하지 않는다면, 어떤 신체가 어떻게 위의 일을 성취 할 수 있는지 말해 줄 수 있습니다.

이것은 항목을 다시 그리기 위해 필요한 html입니다. 비행 중에, 여기 나는 버튼을 유지했지만, 현실에서는 비행 중에 그것을 생성하고 싶다.

<div class="new_options"> 
        <ul> 
         <li> 
          <asp:Button ID="Button4" runat="server" Visible="true" CommandName="DressBtn" Text="Dressing" OnClick="btnDress_Click" /></li> 
         <li> 
          <asp:Button ID="Button5" runat="server" Visible="true" CommandName="SpeInstBtn" Text="Special Instruction" 
           OnClick="btnDress_Click" /></li> 
         <li> 
          <asp:Button ID="Button6" runat="server" CommandName="ToppBtn" Visible="true" Text="Toppings" OnClick="btnDress_Click" /></li> 
        </ul> 
        <div class="clear"> 
        </div> 
       </div> 

답변

1

코드 뒤에서하십시오. 여기까지 시작한 것처럼 컨트롤을 작성한 다음 페이지의 어딘가에 놓으십시오. someContainerControl.Controls.Add (MyNewButton);

+0

그게 내가 그것을 등록하는 방법을 얻지 못하는 이유입니다. 왜냐하면 만약 내가 asp place holder를 가지고 있다면, 나는 똑같은 비참함 속에서 다시 각 place holder에 대한 unique id를 생성해야 할 것이기 때문입니다. – NoviceToDotNet

+0

아니요, 동일한 자리 표시자를 사용하고 더 많은 버튼을 계속 추가 할 수 있습니다. – Induster

1

이렇게하면 서버 컨트롤을 만들 수 없습니다. 이미 작성한 코드를 사용하여 양식을 작성하고 양식에 추가하십시오. 자리 표시 자도 사용할 수 있습니다.

Button btn = new Button(); 
     btn.ID = "btnDress" + x; 
     btn.CommandName = "DressBtn"; 
     btn.Text = "Dressing"; 
     btn.CommandArgument = x.ToString(); 
     btn.UseSubmitBehavior = true; 
     btn.Click += new EventHandler(btnDress_Click); 
    form1.Controls.Add(btn); 
+0

런타임에 div에 추가해야합니다. diw 자체가 런타임에 그릴 것입니까? – NoviceToDotNet

관련 문제