Det går ju att ha en validatorkontroll i presentationslagret.
<asp:RequiredFieldValidator ......... />
Går detta att skapa code-behind, så att ovanstående kod inte behöver finnas i presentationslagret?
14 svar · 355 visningar · startad av Josef
Det går ju att ha en validatorkontroll i presentationslagret.
<asp:RequiredFieldValidator ......... />
Går detta att skapa code-behind, så att ovanstående kod inte behöver finnas i presentationslagret?
Ja, här en funktion jag gjort:
// Creates a RequiredFieldValidator object and returns it.
private RequiredFieldValidator CreateRequiredFieldValidator( string strID, string strControlToValidate, string strErrorMessage )
{
RequiredFieldValidator validator = new RequiredFieldValidator();
validator.ID = strID;
validator.ControlToValidate = strControlToValidate;
validator.ErrorMessage = strErrorMessage;
validator.Display = ValidatorDisplay.Dynamic;
return validator;
}
Exakt hur skriver man sen i code-behind för att den ska fungera?
Fortsätter på denna tråd, har lite crux med att få igång en sådan här i vb
Public Function RequiredFieldValidator(strID As String,strControlToValidate As String,strErrorMessage As String,strCSSclass As String)
Dim validator As RequiredFieldValidator = new RequiredFieldValidator()
validator.ID = strID
validator.ControlToValidate = strControlToValidate
validator.ErrorMessage = strErrorMessage
validator.Display = ValidatorDisplay.Dynamic
validator.CssClass = strCSSclass
validator.ForeColor = System.Drawing.Color.FromName("#710000")
Return validator
End Function
Jag har denna i ett namespace som jag importerar som heter LL.CommonFunctions, problemet är att jag inte vet hur jag skapar den ifrån själva aspx sidan, så nybörjar hjälp uppskattad :)
Jag trodde först att jag inte fick igång den eftersom jag inte anger runat="Server" någonstanns, men det kan man tydligen inte göra.
Det var ju inte heller bara att skriva
<%# RequiredFieldValidator("BLA","BLA","BLA","BLA" %> på aspx sidan heller, så någon som kan tippsa mig om hur jag ska göra..
Tacksam
kanske:
Public Shared Function RequiredFieldValidator(strID As osv
anropa med <%# LL.CommonFunctions.RequiredFieldValidator("BLA","BLA","BLA","BLA" %>
Vad exakt menas med shared i vb ?
Eftersom jag imoporterar den ska jag väll inte behöva använda LL.CommonFunctions. utan det ska väll räcka med RequiredFieldValidator("blalalsla"), eller har jag fattat det fel
tror att det med shared menas att du kan anropa den med punktnotation alltså LLFunctions.DinFunktion.
Annars måste du väl skapa en instans av klassen.
Dim objAvKlassen as New Klassen
Tack p men,aspx ärver ju av LLFunctions så jag kan använda funktionsnamnet direkt när jag ska köra funktionen, har massa andra funktioner i LLFunctions som jag kör direkt på samma sida med direkt anrop till funktionsnamnet, och de fungerar. Så det borde vara något fel med vb koden kanske då. Har jag glömt något?
Det verkar inte vara något fel på vb koden så frågan är hur jag anropar den ifran aspx sidan.
Alla andra funktioner i samma dll som körs som codebehind anropas i stil med.
<%# RequiredFieldValidator("BLA","BLA","BLA","BLA" %>
Får du något fel?
Borde man inte kunna skriva något sånt här:
Public Function CreateValidator(strID As String,strControlToValidate As String,strErrorMessage As String,strCSSclass As String) As RequiredFieldValidator
Dim validator As New RequiredFieldValidator()
' använd with
With validator
.ID = strID
.ControlToValidate = strControlToValidate
.ErrorMessage = strErrorMessage
.Display = ValidatorDisplay.Dynamic
.CssClass = strCSSclass
.ForeColor = System.Drawing.Color.FromName("#710000")
End With
Return validator
End Function
Sen borde du kunna anropa den med:
Controls.Add(CreateValidator(din värden här...)
Tack p. Jag försöker nu anropa den med
<%Controls.Add(RequiredFieldValidator("ValTopicFraga","TopicFraga","Du måste fylla i en fråga")) %>
på min aspx sida, jag får felmeddelandet
Unable to find script library /aspnet_client/system_web/1_0_3705/WebUIValidation.js". Try placing this file manually, or reinstall by running 'aspnet_regiis -c'.
Jag har provat å köra 'aspnet_regiis -c' men får fortfarande samma felmeddelande, någon som vet vad som kan vara fel
Filer ligger i den mappen och den ser korrekt ut men jag får ända samma felmeddelande. Suck
Undertecknad har suttit och tänkt till lite och har lyckats få det att funka.
' Själva funktionen / klasser och sånt tar jag bort
Public Function CreateValidator(strID As String,strControlToValidate As String,strErrorMessage As String,strCSSclass As String) As RequiredFieldValidator
Dim validator As New RequiredFieldValidator()
' använd with
With validator
.ID = strID
.ControlToValidate = strControlToValidate
.ErrorMessage = strErrorMessage
.Display = ValidatorDisplay.Dynamic
.CssClass = strCSSclass
.ForeColor = System.Drawing.Color.FromName("#710000")
End With
Return validator
End Function
' aspx-filen
<asp:label id=rl1 runat=server />
' CodeBehind eller <script runat=server>
rl1.control.add(CreateValidator("r1", "f_name", "Obligatoriskt"))