リピーター内にカスタムバリデーターがあります
<asp:Repeater runat="server" ID="lstRepeater" >
<ItemTemplate>
<asp:CustomValidator ID="cvValid" runat="server" CssClass="error" EnableClientScript="False" ErrorMessage="Invalid."></asp:CustomValidator>
<asp:TextBox runat="server" ID="tbCustomAnswer"></asp:TextBox>
</ItemTemplate>
</asp:Repeater>
テストとして、OnClick イベントで次のコードを試しました。
foreach(RepeaterItem item in lstRepeater.Items)
{
CustomValidator cvValid= (CustomValidator)item.FindControl("cvValid");
cvValid.IsValid = false;
}
お察しのとおり、リピーターをデータバインドしていないため、エラー メッセージはページに表示されません。ただし、リピーターとデータソースを再構築するとすぐに、リピーター内の古い値がすべて失われます。これを回避する簡単な方法はありますか?この問題を処理するエレガントな方法は思いつきません。