在ListView中,每當單擊CommandName =「Delete」的按鈕時,我都會設置一個CustomValidator來驗證字段。自定義驗證不與刪除按鈕一起使用?
<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 =「刪除」。
隨着谷歌,我發現了以下解決方案,這似乎表明有人已經有過類似的問題:
http://devio.wordpress.com/2007/12/11/formview-delete-button-and-customvalidators/
但我想,以確保該解決方案是要走的路。我的意思是,自定義驗證真的不應該與數據綁定控件中的刪除按鈕一起工作,嚴重嗎?
這是很久以前的事,但我覺得我最後做它像你描述過。 – md1337 2012-04-10 15:53:52
地獄是啊:P至少它讓你關閉一個問題:) – 2012-04-10 20:15:42