我有以下前端代码:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Table ID="groupTable" runat="server"></asp:Table>
</ContentTemplate>
</asp:UpdatePanel>
其中&#34; groupTable&#34;在服务器端生成几行文本框,如下所示
<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 :(得分:0)
问题可能是没有为Async Postback注册控件。你可以做两件事。为Async Postback注册那些TextBox,或者从后面的代码动态创建groupTable
中的TextBox。
ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(TextBox1);
或者将TextBox直接添加到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);