autopostbackを使用しているドロップダウンリストのカスタムバリデーターを記述しています。検証を完全に無視するようです。なぜそれは無視され、簡単な修正がありますか?コードの後ろドロップダウンリストのcustomvalidatorが呼び出されていない(明らかに)
<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>
::私はControlToValidate
asp.net使用していませんでした
注デバッグ目的のために
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を使用していない理由もあります。私はあなたが言ったように、あなたがしなかったことに気づいたが、私はなぜそれがわからない。 –
私はユーザーが最初に選択した値に基づいてドロップダウンリストを変更しています。 (私はこれが嫌いですが、ユーザは古いシステムの仕組みに慣れています)私が変更した後でddlを更新するには、autopostbackを使う必要があると思います。私はcontroltovalidateの有無にかかわらず試しました。私は半ダースのサイトで読んだ情報に基づいていなかった。 (アドバイスがどれほど信頼できるのかは分かりませんが、私は一般的に、仕事に就いている人は私が何かを知っていると仮定しています) – elbillaf