2013-04-23 4 views
1

나는 테이블 행의 버튼 클릭으로 C#에서 동적으로 텍스트 상자를 추가하려고합니다. 그 때문에 나는 다음 코드를 사용했다. [1] : http://pastie.org/7702237.C#에서 테이블 행에 동적으로 텍스트 상자를 추가하는 방법

문제가 내가 원하는대로 내가 많은 텍스트 상자를 추가 할 수 있어요 그러나 그들은 동일한 위치에 추가하고, 나는 테이블 행 대신 단순히 새와 함께 오래된 테이블 행을 교체 할 때마다 버튼을 클릭하십시오 증가되지 의미 하나. 이 문제를 해결하는 방법을 도와주세요. 사전에

감사 가네

답변

1

웹 기반 상태를 유지하지 않는 응용 프로그램; 이를 위해 테이블 ​​및 변수의 상태가 유지되지 않습니다. 각 포스트 백 (버튼에 의해 생성됨)을 사용하면 테이블 상태는 행을 추가하기 전의 상태로 돌아간 다음 프로그램 방식으로 행이 추가됩니다.

목표를 달성하려면 상태를 어떻게 든 유지해야합니다.

private List<TableRow> TableRows 
{ 
    get 
    { 
     if(Session["TableRows"] == null) 
      Session["TableRows"] = new List<TableRow>(); 
     return (List<TableRow>)Session["TableRows"]; 
    } 
} 

다음

세션 변수와 함께 작동하도록 수정 된 코드입니다 : 다음 코드에서 내가 세션을 활용하고

TextBox txtE, txtM, txtB; 
Button btnAdd, btnDel; 

TableRow trow; 
TableCell tcell; 

foreach(TableRow tr in TableRows) 
    tblEduDetails.Controls.Add(tr); 

int count = TableRows.Count + 1; 

txtE = new TextBox(); 
txtE.ID = "E" + count.ToString(); 
txtE.Visible = true; 
txtE.Text = "E " + count.ToString(); 
txtE.BorderWidth = 2; 
txtE.TextMode = TextBoxMode.SingleLine; 
txtE.Height = 30; 

txtM = new TextBox(); 
txtM.ID = "M" + count.ToString(); 
txtM.Visible = true; 
txtM.Text = "M " + count.ToString(); 
txtM.TextMode = TextBoxMode.SingleLine; 
txtM.Height = 30; 

txtB = new TextBox(); 
txtB.ID = "E" + count.ToString(); 
txtB.Visible = true; 
txtB.Text = "B " + count.ToString(); 
txtB.TextMode = TextBoxMode.SingleLine; 
txtB.Height = 30; 

btnAdd = new Button(); 
btnAdd.ID = "A" + count.ToString(); 

btnDel = new Button(); 
btnDel.ID = "D" + count.ToString(); 

trow = new TableRow(); 
trow.ID = "R" + count.ToString(); 
trow.BorderWidth = 1; 

tcell = new TableCell(); 
tcell.ID = "E" + count.ToString(); 
tcell.Controls.Add(txtE); 
trow.Controls.Add(tcell); 

tcell = new TableCell(); 
tcell.ID = "B" + count.ToString(); 
tcell.Controls.Add(txtM); 
trow.Controls.Add(tcell); 

tcell = new TableCell(); 
tcell.ID = "M" + count.ToString(); 
tcell.Controls.Add(txtB); 
trow.Controls.Add(tcell); 

tblEduDetails.Controls.Add(trow); 
TableRows.Add(trow); 
+0

이 TableRow는 직렬화되지 않기 때문에 대한 오류를 제공, 무엇 그것을 위해 할 수 있습니까? – Gaurravs

관련 문제