2012-04-30 2 views
3

행 추가 단추를 클릭 할 때마다 행을 추가하는 동적 테이블을 만들고 있습니다. 단추를 프로그래밍 방식으로 만들고 테이블 머리글에 추가하고 있습니다. 그 아래에 동일한 행에 행 단추도 삭제됩니다.ASP.NET 프로그래밍 방식으로 이벤트 단추 추가

버튼을 클릭해도 이벤트가 호출되지 않는데 문제가 있습니다. 버튼을 올바르게 만들고 있습니까? 그렇지 않다면 어떻게해야합니까? 내가 그렇다면 문제가 뭔지 알아?

지역 Add_Table_Header
TableHeaderCell thcOne = new TableHeaderCell(); 
    TableHeaderCell thcTwo = new TableHeaderCell(); 
    TableHeaderCell thcThree = new TableHeaderCell(); 
    TableHeaderCell thcrFour = new TableHeaderCell(); 
    TableHeaderCell thcFive = new TableHeaderCell(); 
    TableCell thcRowAction = new TableCell(); //THIS IS THE COLUMN WITH THE 
               //ADD BUTTON 

    thcOne.Text = "Who"; 
    thcTwo.Text = "Date Started"; 
    thcThree.Text = "Date Ended"; 
    thcrFour.Text = "Causes?"; 
    thcFive.Text = "Result"; 

      //HERE IS WHERE I CREATE AND ADD THE BUTTON 

    Button addRowButton = new Button(); 
    addRowButton.Text = "Add Row"; 
    addRowButton.Click += new EventHandler(this.AddNewRow_Click); 
    thcRowAction.Controls.Add(addRowButton); 

    TableHeaderRow headerRow = new TableHeaderRow(); 
    headerRow.Cells.Add(thcOne); 
    headerRow.Cells.Add(thcTwo); 
    headerRow.Cells.Add(thcThree); 
    headerRow.Cells.Add(thcrFour); 
    headerRow.Cells.Add(thcFive); 
    headerRow.Cells.Add(thcRowAction); 

    table.Rows.Add(headerRow); 

    #endregion 


protected void AddNewRow_Click(object sender, EventArgs e) 
    { 
     if (ViewState["RowsCount"] != null) 
     { 
      numOfRows = Convert.ToInt32(ViewState["RowsCount"]); 
      GenerateTable(numOfRows); 
     } 
    } 

다시 한번 버튼이 나타납니다,하지만 올바른 이벤트 메서드를 입력하지 않습니다.

<asp:Button ID="BTNAdd" runat="server" Text="Add New Row" OnClick="AddNewRow_Click" /> 

이벤트가 등록하고 완벽하게 잘 작동합니다 : 그런데 당신의 도움과 시간 :

에 대한 덕분에 나는 선언적 등을 수행 할 때.

새 정보 : 나는 삭제 단추가 나타나고, 어떤 유형의 이벤트도 등록하지 않았지만 그것을 클릭하면 행 추가 단추와 똑같은 기능을 수행 할 수 있습니다. 마스터 페이지 또는 다른 소스가 버튼을 먼저 또는 기본값으로 알려줍니다.

감사합니다 :)

답변

3

viewstate가 및 이벤트를 적절히 트리거되도록 당신은 페이지의 초기화 이벤트 처리기에서 동적 컨트롤을 추가해야합니다.

이 일을보십시오 :

protected void Page_Init(object sender, EventArgs e)  
    {   
     Button btn = new Button();   
     btn.ID = "btnTest";   
     btn.Text = "I was dynamically created";   
     btn.Click += new EventHandler(btnTest_Click);   
     Panel1.Controls.Add(btn);  
    } 
관련 문제