Testé l'unicité d'un enregistrement : Quand on utilise un formulaire pour créer une référentiel , il peut être nécessaire de vérifier qu'un élément n'existe pas déjà
Le moyen le plus élégant pour tester l'unicité est d'utiliser une fonction "CustomValidation" :
Sur le site Web ; Copier le répertoire Custom_PVL 📎 Télécharger Custom_PVL.zip Dans le formulaire en mode source ajouter (voir éléments en bleu): en haut la ligne :
<%@ Register Assembly="Avanteam.Kernel.Web" Namespace="Avanteam.Kernel.Web.UI.WebControls.ApsFields" TagPrefix="apsfield" %>
<%@ Control Language="C#" ClassName="Frmb08511607d0747c4b6bc888e566fd082" %>
<%@ Register Assembly="Avanteam.Kernel.Web" Namespace="Avanteam.Kernel.Web.UI.WebControls.ApsFields" TagPrefix="apsfield" %>
<%@ Register Assembly="Avanteam.Kernel.Web" Namespace="Avanteam.Kernel.Web.UI.WebControls" TagPrefix="aps" %>
Sur le champ sur lequel on doit effectuer le contrôle , ajouter customvalidation et customvalidationerrortext (dans l'exemple ci-dessous, le texte est fait sur une dropdown list )
<apsfield:ApsFieldTextDropDownList id="apsFieldd19cbcbd" advancedmode="False" fieldname="Type" fieldid="199b06d2-fb4f-4495-975c-32701ca78478" fieldlabel="Type" showlabel="True" runat="server" customvalidationfunction="MyUnicityFunction" customvalidationerrortext="Doublon détecté !">
</apsfield:ApsFieldTextDropDownList></td>
En bas
<aps:ScriptInclude id="ScriptInclude1103073142" runat="server" includesrc="~/Custom_PVL/Unicity.js" includekey="Unicity">
</aps:ScriptInclude>
En mode design, cela se traduit par un " "script include"

Sur le champ , dans les paramètres on a :
A l'enregistrement du formulaire: Le script Custom_PVL/unicity.js va lancer l'ashx qui fait le contrôle par une requete SQL. Il faut bien entendu adapter la requete au contexte du formulaire.
Note du 25/07/2012 : Suite à la remarque de Richard : modification de l'URL dans unicity.js pour ajout d'un timestamp : En effet sans cela l'url est mise en cache et retourne toujours le même résultat