2016-11-23 5 views
0

나는 다음과 같은 프론트 엔드 코드가 있습니다 : "groupTable가"와 같은 텍스트 상자의 몇 행과 서버 측에서 생성되는 ASP : UpdatePanel이 예상대로 작동하지 않았다

<asp:ScriptManager ID="ScriptManager1" runat="server" /> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:Table ID="groupTable" runat="server"></asp:Table> 
    </ContentTemplate> 
</asp:UpdatePanel> 

아래

<INPUT onchange="javascript:setTimeout('__doPostBack(\'textbox0\',\'\')', 0)" tabIndex=100 onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id=textbox0 language=javascript value=eeedddeeeee name=textbox0 jQuery19107993684268830612="42"> 

인접한 컨트롤에 적용되는 서버 쪽 논리가 있으므로 각 텍스트 상자에 포스트 백이 있으므로 컨트롤의 내용이 이전 컨트롤 내용에 따라 다릅니다.

전체 페이지가 새로 고쳐지지 않고 테이블 자체 만 볼 것으로 예상되지만 다른 방법으로 나타납니다.

나는 아무것도 못 찾았나요?

+0

에 직접 텍스트 상자를 추가는 어디 (\를 \ 'textbox0의 \' '\') '__doPostBack를받을 수 있나요'에서? – VDWWD

+0

에서 텍스트 상자를 편집하는 중입니다. – Lys

답변

0

컨트롤이 비동기 포스트 백에 등록되어 있지 않은 것이 문제 일 수 있습니다. 당신은 2 가지 일을 할 수 있습니다. 비동기 포스트 백을 위해 해당 텍스트 상자를 등록하거나 groupTable의 코드 상자에서 동적으로 텍스트 상자를 만듭니다.

ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(TextBox1); 

또는 groupTable

TextBox textBox = new TextBox(); 
textBox.AutoPostBack = true; 
textBox.Text = "Hello World"; 
textBox.TextChanged += TextBox_TextChanged; 

TableRow tableRow = new TableRow(); 

TableCell tableCell = new TableCell(); 
tableCell.Controls.Add(textBox); 
tableRow.Cells.Add(tableCell); 

groupTable.Rows.Add(tableRow);