寫作正在使用自動回一個下拉列表一個自定義的驗證。似乎完全忽略了驗證。爲什麼它被忽略,並且有一個簡單的解決方法?的CustomValidator的下拉列表不被調用(顯然)
注意,我沒有使用的ControlToValidate
asp.net:
<asp:UpdatePanel ID="updatePanel" runat="server" UpdateMode="Conditional" Visible="true" RenderMode="Inline">
<ContentTemplate>
<asp:DropDownList ID="ddlCommandAssign" runat="server" AutoPostBack="true">
</asp:DropDownList>
<asp:CustomValidator id="val_command_assigned" runat="server"
ErrorMessage="* "
display="Static"
OnServerValidate="commandAssigned"
/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlCommandAssign"
EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
代碼背後:
Sub commandAssigned(ByVal source As Object, _
ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)
Dim s As String
s = ddlCommandAssign.SelectedValue
'if s = "1" then
' args.IsValid = true
'else
' args.IsValid = False
'end if
args.IsValid = False
End Sub
出於調試目的,我希望它每次都失敗。
它似乎並沒有在所有執行後面的代碼。
對於調試,我加了線的Response.Redirect(「dummy.html」)...永遠也不會被調用,這也預示(我認爲)驗證不會被調用。
我還添加了ValidateEmptyText = 「true」 以驗證。仍然沒有運氣。 – elbillaf
重要的是讓你通過回傳驗證它嗎?你是否反對在客戶端做這件事?另外,是否有你沒有使用ControlToValidate的原因。我注意到你沒有,就像你說的,但我不知道爲什麼。 –
我正在根據用戶首先選擇的值更改下拉列表。 (我*討厭*這個,但用戶習慣於舊系統的工作方式)。我想我需要使用autopostback更新ddl後,我改變它。我試着用和不用controltovalidate。我根據我在半打網站上閱讀的信息嘗試過。 (不知道這個建議有多可靠,但我通常假設讓它工作的人知道我不知道的東西。) – elbillaf