UpdatePanels
フォームには 2 つあり、両方とも複数の と が含まれてDropDownLists
おりTextBoxes
、そのほとんどを検証する必要があります。検証の概要とバリデーターを別の にグループ化していdiv
ます。はdiv
どちらの更新パネル内にもありません。そして、最終的に、どちらにもないボタンができましたUpdatePanels
。ボタンをクリックするだけで、すべてのコントロールが検証され、検証の概要に表示されるようにするにはどうすればよいですか?
2 に答える
まず、ボタンAsyncPostBackTrigger
を両方のとして設定する必要がありますUpdatePanels
。
次に、EnableClientScript="true"
すべてのバリデーターを設定する必要があります。これにより、クライアント側で検証が実行されます(Javaスクリプト)。
最後に、ボタンValidationGroup
はバリデーターの1つと一致する必要があります。
ただし、サーバー側で検証を実行する必要がある場合は、バリデーターを更新パネルに配置して、非同期で更新する必要があります。
これらの提案を何もせずにこれを達成したと信じてください。ボタンの検証グループとすべてのバリデーターを同じ値に設定しました。ケースを思い出させてください:私は2つの更新パネルを持っています.最初のパネルのコントロールのバリデーターは、どちらのパネルにも含まれていない別のdivにあります。2 番目の更新パネルには、検証するコントロールが 1 つしかないため、そのバリデーターを同じパネルに配置しました。そして、これらすべてとは完全に別のボタンがあります。ボタンをクリックすると、validationsummary にまとめられたすべての検証メッセージを取得できます。しかし、非常に奇妙なことはまだ秘密のままです: 最初のパネル コントロールのバリデーターはそのパネルの外にあり、かなりうまく機能します。しかし、2 番目の更新パネルから唯一のバリデーターを取得し、それを他のバリデーターの中に入れると、その単一のバリデーターのメッセージが表示されません。このような多くのことを目撃したので、これは Visual Studio のバグであるとほぼ確信しています。