ユーザーの入力を処理できるように、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>
ここでの問題は、Textbox に入力を行い、その後 TextChanged イベントが発生しようとすると、Internet Explorer デバッガーからエラーが発生することです。
Sys.WebForms.PageRequestManagerServerErrorException: GUID should contain 32 digits with 4 dashes
TextChanged イベント用に定義した分離コード メソッドには到達しません。
それで、私は何を間違っていますか?どんな助けでも大歓迎です:)
更新: 私の問題の一部は、私の側からの誤った情報だったようです。コード ビハインドの必要な部分のみが更新パネルによって読み込まれると仮定しましたが、これは完全に間違っていることがわかりました。したがって、私のコードのどこかに空の GUID が作成され、最終的に PageRequestManagerServerErrorException が発生しました。
ようやくエラー メッセージが表示されなくなりましたが、まだ TextChanged イベントを使用できません。
これが役立つかどうかはわかりませんが、TextBox に最初に何かを書き込んでそのままにしておくと、何も起こらないことがわかりました。しかし、TextBox に何かを書き込んで再びそのままにしておくと、ポストバック (非同期ではない) が発生します。
一体何が起こっているのですか?