データベースからの情報を表示し、ユーザーが新しいアイテムを追加できるようにする.aspxページがあります。
このページには更新パネルが含まれています。そのupdatepanelには、グリッドビューといくつかの入力要素を含むパネルがあります。
<asp:Panel runat="server" ID="NewPersonPanel" DefaultButton="NewPersonButton" Visible="false">
<div id="newItemForm">
<label for="NewPersonName">Name:</label>
<asp:TextBox ID="NewPersonName" runat="server" MaxLength="50" />
<asp:RequiredFieldValidator ID="RequiredName" EnableClientScript="true" ControlToValidate="NewPersonName" ErrorMessage="Name must not be empty" ValidationGroup="NewPersonValidationGroup" runat="server" /><br />
<label for="NewPersonFirstName">First Name:</label>
<asp:TextBox ID="NewPersonFirstName" runat="server" MaxLength="50" />
<asp:RequiredFieldValidator ID="RequiredFirstName" EnableClientScript="true" ControlToValidate="NewPersonFirstName" ErrorMessage="First name must not be empty" ValidationGroup="NewPersonValidationGroup" runat="server" /><br />
<div id="newPersonControls">
<asp:LinkButton ID="NewPersonButton" ValidationGroup="NewPersonValidationGroup" runat="server" OnCommand="PersonGrid_Insert">Create</asp:LinkButton>
<asp:LinkButton ID="HideInputFormButton" runat="server" OnCommand="HideInputForm">Cancel</asp:LinkButton>
</div>
</div>
</asp:Panel>
検証要素がなくても、ページは正常に機能します。検証を追加すると、状況がおかしくなります。フィールドが空のときに[作成]ボタンをクリックしようとすると、赤い検証メッセージが表示されますが、これによりページ上のすべてのポストバックが強制終了されます。フィールドに入力すると、赤いテキストは消えますが、ボタンを使用できなくなります。新しい人の作成、フォームの削除、グリッドの並べ替え、グリッドのフィルタリング、グリッドページング....すべてが機能しなくなります。デバッガーを使用すると、コードの背後にある呼び出しがなくなったように見えるため、検証に失敗すると、JavaScriptで何かが行われ、他のすべての「__doPostBack」メソッドが失敗するように見えます。
私はこのスレッドを見つけました:asp.net:検証が失敗した後、ポストバックが無効になりました が、そこには何の答えもありませんでした。