2016-11-23 60 views
0

我有以下前端代码: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> 

,其中在服务器端生成“grouptable将”文本框的几排像下面

<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

你在哪里得到'__doPostBack(\ 'textbox0 \',\ '\')'? – 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);