Quindi ho cercato dappertutto e non riesco a trovare un problema simile.CompareValidator senza RequiredFieldValidator?
In pratica, sembra che l'utilizzo di CompareValidator
non funzioni senza RequiredFieldValidator
.
<div class="control-group">
<label class="control-label" for="PositionName">
Password:</label>
<div class="controls">
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox>
<%--<asp:RequiredFieldValidator ID="rvPassword" runat="server" ControlToValidate="txtPassword"
ErrorMessage="Please Enter Password" SetFocusOnError="True" ValidationGroup="1"
CssClass="error"></asp:RequiredFieldValidator>--%>
</div>
</div>
<div class="control-group">
<label class="control-label" for="PositionName">
Confirm Password:</label>
<div class="controls">
<asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqConPass" runat="server" ControlToValidate="txtConfirmPassword"
ErrorMessage="Please Enter Confirm Password" SetFocusOnError="True" ValidationGroup="1"
CssClass="error"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="compPassword" runat="server" ControlToValidate="txtConfirmPassword"
ControlToCompare="txtPassword" ErrorMessage="Password Mismatch" SetFocusOnError="True"
ValidationGroup="1" CssClass="error"></asp:CompareValidator>
</div>
</div>
In sostanza, si può vedere ho la RequiredFieldValidator
commentata sia per passare e confermare passaggio. Quando eseguo questa operazione, posso inviare solo un valore nello txtPassword textbox
e nulla nello txtConfirmPassword textbox
.
Se si annulla il valore di RequiredFieldValidators
, esso viene confrontato come dovrebbe.
Se è utile, il motivo per cui devo farlo è perché non riesco a decodificare la password e riempire automaticamente la casella di testo con la password corrente. Quindi ogni volta che un utente viene editato, dovrà inserire una nuova password ogni volta con uno RequiredFieldValidator
su di esso.
Quindi la mia soluzione era sbarazzarsi dello RequiredFieldValidator
e controllare solo se il testo è nullo o vuoto, e se lo è, non aggiornare la password, ma se non lo è, aggiorna l'utente senza aggiornare il parola d'ordine.
Spero che abbia senso, e se qualcuno può aiutare lo apprezzerei molto.
Se avete bisogno di maggiori informazioni si prega di chiedere.
Grazie ancora!
Sì, questo è di progettazione. È possibile eseguire il confronto sul lato server o utilizzare un validatore personalizzato. –
Questo ha funzionato perfettamente per me. Ho copiato il tuo codice direttamente e anche senza il validatore richiesto sulla password mi è stato dato "Password Mismatch" - sebbene abbia eseguito un PostBack nel mio test. – ahwm
Hmm interessante per il fatto che ha funzionato per te, ahwm, a me non sembra che piaccia. Vabbè, suppongo che prenderò i consigli di Henk Holterman e controllerò il lato server. Grazie ragazzi! –