我想在 UpdatePanel 中触发 TextBox 的 TextChanged 事件,这样我就可以对用户的输入做一些事情。
到目前为止,我想出的是以下代码:
<asp:GridView ID="gdBestellliste" AutoGenerateColumns="false" runat="server"
Width="100%" AllowPaging="false" GridLines="Horizontal" EnableModelValidation="true"
BorderColor="#6893CF" PagerStyle-BackColor="#F0F0F0" HeaderStyle-Height="20" ShowFooter="false">
<Columns>
<asp:TemplateField HeaderText="Amount to order" HeaderStyle-BorderStyle="None" HeaderStyle-HorizontalAlign="left" HeaderStyle-Width="70px"
ItemStyle-HorizontalAlign="left" ItemStyle-Wrap="false" ItemStyle-VerticalAlign="Middle" ItemStyle-CssClass="DataCell">
<ItemTemplate>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:TextBox runat="server" ID="tbProductLookup" OnTextChanged="tbProductLookup_Changed" AutoPostBack="true"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我的问题是,当我在文本框中进行输入,然后 TextChanged 事件尝试触发时,我从 Internet Explorer 调试器中收到错误消息:
Sys.WebForms.PageRequestManagerServerErrorException: GUID should contain 32 digits with 4 dashes
它永远不会到达我为 TextChanged 事件定义的代码隐藏方法。
那么我做错了什么?任何帮助将不胜感激 :)
更新: 似乎我的问题的一部分是我的错误信息。我假设更新面板只会加载后面需要的代码部分,我现在了解到这是完全错误的。因此,在我的代码中的某个地方创建了一个空 GUID,这最终导致了 PageRequestManagerServerErrorException。
很好,最后我没有收到任何错误消息,但我仍然无法使用 TextChanged 事件。
我不知道这是否有任何帮助,但我发现当我第一次在我的 TextBox 中写一些东西并离开它时,什么也没有发生。但是,当我在 TextBox 中写入内容并再次将其保留时,会发生回发(非异步)。
这到底是怎么回事?