在ListView中,我设置了一个CustomValidator,以便在单击具有CommandName =“Delete”的按钮时验证字段。
<ItemTemplate>
<asp:TextBox ID="NameTextBox" Text=<%# Eval("Name") %> runat="server" />
<asp:Button ID="DeleteButton" Text="Delete" CommandName="Delete" ValidationGroup="Delete" runat="server" />
<asp:CustomValidator ValidationGroup="Delete" SetFocusOnError="true" Display="Dynamic" OnServerValidate="CustomValidator_ServerValidate" runat="server">You can't delete this.</asp:CustomValidator>
</ItemTemplate>
但是,永远不会显示错误消息并继续处理。奇怪的是,调用自定义验证方法,查找字段,并将e.IsValid正确设置为false。我是否检查Page.IsValid并不重要,因为无论如何都不会显示错误消息。
如果我从按钮中删除CommandName =“Delete”,它就有效。
通过Google,我找到了以下解决方案,这似乎表明有人遇到了类似的问题:
http://devio.wordpress.com/2007/12/11/formview-delete-button-and-customvalidators/
但我想确保这个解决方案是可行的方法。我的意思是,真的不应该在数据绑定控件中使用删除按钮进行自定义验证吗?
答案 0 :(得分:0)
我已经听说过像这样的问题,他通过完全不同的方式解决了这个问题。就像,而不是customValidator,他将标签集 EnableViewState =“False”和 Visible =“False”,并检查删除事件的条件并放置响应回到标签。也许它不适合你呢?
但是,如果你真的问“为什么?????”,我知道他没有找到确切原因......