2012-08-31 2 views
4

ASP.net 테이블이 있으며 런타임에 테이블 행과 셀을 동적으로 추가하고 컨트롤 (텍스트 상자 및 레이블)을 추가합니다. 이 세포들. OnInit 이벤트에서이 컨트롤을 만들고 채우고 있습니다. 자동으로보기 상태로 저장되기를 바랍니다. 그러나 그들은 그렇지 않습니다! 각 다시 게시에서 테이블이 재설정되고 비어있는 것으로 표시됩니다.ASP.net 테이블에 테이블 행 및 셀 추가 및 유지

캐시 나 세션에 컨트롤을 저장하거나 수동으로보기를 추가하고 값을 뷰 상태에 수동으로 저장하는 것과 같은 여러 가지 솔루션을 읽었지 만, 어려운 해결책이 필요합니다. as는 asp.net 구성 요소를 끌어 놓을 때처럼 상태를 유지하는 것을 잊어 버립니다.

감사합니다.

+0

는 .NET 테이블 및 텍스트 상자를 사용해야합니까? 어쩌면 html-form-controls를 추가 할 수 있습니다. – Mathieu

+0

포스트 백이 어떻게됩니까? 버튼을 클릭 하시겠습니까? –

+0

예, 정확히 버튼을 클릭 –

답변

0

tranceporter가 제안 했으므로 매번 테이블 컨트롤을 추가해야합니다. 그러나 포스트 백간에 viewstate를 유지하려면 PreInit 이벤트에서 테이블을 다시 작성해야합니다.

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    TableRow row = new TableRow(); 
    TableCell cell = new TableCell(); 
    cell.Controls.Add(new TextBox()); 
    row.Cells.Add(cell); 
    table.Rows.Add(row); 
} 

컨트롤이 다음 ASP.NET 프레임 워크는 페이지 초기화 및로드 이벤트 화재 전에 당신을위한 컨트롤에 viewstate가 적용됩니다 PreInit 이벤트에서 생성됩니다. 은 ASP.NET 페이지 수명주기에 대한 자세한 내용은 여기를 참조하십시오 :

http://msdn.microsoft.com/en-us/library/ms178472(v=VS.100).aspx

1

테이블을 매번 다시 만들어야합니다. Page_Load 이벤트에서 행과 셀을 작성해보십시오.

protected void Page_Load(object sender, EventArgs e) 
    { 
     TableRow row = new TableRow(); 
     TableCell cell = new TableCell(); 
     cell.Controls.Add(new TextBox()); 
     row.Cells.Add(cell); 
     table.Rows.Add(row); 
    } 

는 당신이 시도 할 수 : 당신이 좋아하는 그들에게를 Page_Load에 그것을 제어 및 설정 값을 추가 할 수

<asp:Table ID="table" runat="server" /> 

하는 경우 : 같은 테이블 서버 측 컨트롤 : 나는 당신이 ASP를 가지고 있다고 가정하고 작동한다면?