Ecco il mio prendere su una soluzione server-side in C# per simulare la risposta di cui sopra, per chiunque sia interessato:
<asp:TextBox ID="txtStudentComments" runat="server"
Rows="8" Width="100%"
ToolbarCanCollapse="False" ValidationGroup="vg1" />
<asp:CustomValidator ID="cv1" runat="server" ControlToValidate="txtStudentComments"
ErrorMessage="THESE COMMENTS DO NOT SEEM RIGHT. PLEASE REVIEW THEM AGAIN!" SetFocusOnError="true"
Font-Bold="True" Font-Size="Medium" ValidationGroup="vg1" OnServerValidate="cv1_ServerValidate"></asp:CustomValidator>
E sul server:
//validate of the comment contains some specific words which imply the TET has not reviewed the comments!
protected void cv1_ServerValidate(object source, ServerValidateEventArgs args)
{
CustomValidator cv = (CustomValidator)source;
GridViewRow gvRow = (GridViewRow)cv.NamingContainer;
TextBox editor = (TextBox)gvRow.FindControl("txtStudentComments");
if (editor.Text.ToUpper().Contains("FACILITATOR TO INSERT COMMENTS HERE PLEASE"))
args.IsValid = false;
else
args.IsValid = true;
}
Queste due linee sono il punto cruciale di esso.
CustomValidator cv = (CustomValidator)source;
GridViewRow gvRow = (GridViewRow)cv.NamingContainer;
Il NamingContainer sarà un GridViewRow nel mio caso, ma potrebbe essere la vostra intera pagina a seconda del programma. In ogni caso mi permette di trovare il controllo che voglio, relativamente all'oggetto ControlToValidate, che come detto restituirà l'ID cliente.
Ciao Musa. Ho provato a farlo ma restituisce 'indefinito' – DJPB
È davvero interessante perché l'ho provato in IE e Chrome, entrambi hanno funzionato bene nel mio sito Web .NET 3.5. Assicurati di avere il sender.controltovalidate in lettere minuscole perché anch'io ho undefined con ControlloValutato pascalizzato. –
Sì, l'ho provato come te ma non ha ancora successo. Quali proprietà hai impostato quando dichiari il tag del validatore personalizzato? – DJPB