2012-11-13 1 views
1

사용자가 클릭하여 테이블에 행을 추가하고 싶을 때가 아니고 asp 뒤에있는 코드에서 그렇게하지 말고 "addRowButton"을 클릭하면 한 행만 표에 추가 할 수 있습니다. 그래서 Google에서이 문제를 검색하고이 문제의 원인 인 ASP에서 "ViewState"에 대한 기사를 볼 수는 있지만이 문제를 해결하기 위해 "ViewState"를 어떻게 사용하거나 변경할 수 있는지 이해할 수 없습니다. 여기asp에서 표에 행 추가

는 ASP 페이지 내 테이블의 템플릿입니다 :

<table runat="server" ID="myTable"> 
<tr><td> 
<asp:textbox runat="server" ID="txt1"></asp:textbox> 
</td></tr> 
</table> 

와 나는 테이블에 특정 세포 일부 행을 추가하려면이 코드를 사용하고 있습니다 :

protected void AddNewRow(object sender, EventArgs e) 
    { 
     HtmlTable tbl = (System.Web.UI.HtmlControls.HtmlTable)this.FindControl("myTable"); 
     HtmlTableCell cell = new HtmlTableCell(); 
     HtmlTableRow row = new HtmlTableRow(); 
     TextBox txt = new TextBox(); 
     txt.ID = "txtTest"; 
     cell.Controls.Add(txt); 
     row.Controls.Add(cell); 
     int rowNumber = tbl.Rows.Count; 
     tbl.Controls.AddAt(rowNumber, row); 
    } 

답변

2
도와주세요

현재 행 수를 ViewState 필드에 저장해야합니다 (현재 페이지 컨텍스트의 ViewState 속성 사용). 또는 숨겨진 필드에 동일한 정보를 저장 한 다음 AddNewRow 번을 호출하면 페이지의 OnInit 이벤트 중에 ViewState가 여러 번 말합니다.

는 여기에 몇 가지 psuedocode입니다 : 난 당신이 내 요청을 구현 여기에 코드를 작성할 수있는 것은, 당신이 당신의 대답에 대한 자세한 내용을 설명 할 수

During OnInit: 
    Is this a postback? If so... 
     Read the number of table-rows N from ViewState["RowCount"] 
     For(I=0 to N) AddTableRow() 

During AddRow_ClickHandler 
    AddTableRow() 
    ViewState["RowCount"]++ 
+0

친애하는 다이, 내가 ASP에서 초보자입니다. –

+0

아니요, 죄송 합니다만 코드를 작성할 수는 없습니다. – Dai