webForumDet fria alternativet

Skapa validator

14 svar · 355 visningar · startad av Josef

JosefMedlem sedan mars 20023 561 inlägg
#1

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?

VideMedlem sedan dec. 19998 577 inlägg
#2

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;
}
JosefMedlem sedan mars 20023 561 inlägg
#3

Jasså, det var inte svårare än så. ;)

Tackar Vide!

cyprysMedlem sedan dec. 20003 563 inlägg
#4

Exakt hur skriver man sen i code-behind för att den ska fungera?

erkaMedlem sedan dec. 19996 522 inlägg
#5

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

PMedlem sedan jan. 20012 204 inlägg
#6

kanske:
Public Shared Function RequiredFieldValidator(strID As osv

anropa med <%# LL.CommonFunctions.RequiredFieldValidator("BLA","BLA","BLA","BLA" %>

erkaMedlem sedan dec. 19996 522 inlägg
#7

Vad exakt menas med shared i vb ?

erkaMedlem sedan dec. 19996 522 inlägg
#8

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

PMedlem sedan jan. 20012 204 inlägg
#9

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

erkaMedlem sedan dec. 19996 522 inlägg
#10

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?

erkaMedlem sedan dec. 19996 522 inlägg
#11

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" %>

PMedlem sedan jan. 20012 204 inlägg
#12

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...)
erkaMedlem sedan dec. 19996 522 inlägg
#13

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

erkaMedlem sedan dec. 19996 522 inlägg
#14

Filer ligger i den mappen och den ser korrekt ut men jag får ända samma felmeddelande. Suck

cyprysMedlem sedan dec. 20003 563 inlägg
#15

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"))
138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)