Hej Problemet är att du bara kan kolla värde genom en sträng. Ev så gör du en customValidator och kollar på serversidan om ordet finns eller ej. Ok. Borde det inte vara enklare med en regular expressions-validator? Sen bara skriva ett pattern med de ord som du inte vill ska tillåtas... Det beror väl på hur många ord man vill ha. Jag brukar bygga mina saker rätt generella och dynamiska av den anledningen att jag av erfarenhet vet att saker och ting kommer att förändras. Om det ex är tre ord för honom nu kanske det blir fyra fem, kanske tio eller hundra ord i framtiden, Har man då byggt ett stöd för detta från början kostar en sådan justering mindre... Och att bygga det dynamsikt från början tar oftast inte längre tid än att bygga det statiskt. Försöker få in denna i min datagrid men lyckas inte för errormessage visas inte.CompareValidator
Jag skulle vilja kolla så att min textbox INTE innehåller vissa ord. Alltså om man skriver "hej" så ska den gå igenom en array och kolla så att man får skriva hej. Kan man göra detta med CompareValidator.Sv: CompareValidator
Mvh JohanSv: CompareValidator
För VB .Net:
<code>
<%@ Page Language="VB" AutoEventWireup="True" %>
<html>
<head>
<script runat="server">
Sub ValidateBtn_OnClick(sender As Object, e As EventArgs)
' Display whether the page passed validation.
If Page.IsValid Then
Message.Text = "Page is valid."
Else
Message.Text = "Page is not valid!"
End If
End Sub
Sub ServerValidation(source As Object, args As ServerValidateEventArgs)
Try
' Test whether the value entered into the text box is even.
Dim num As Integer = Integer.Parse(args.Value)
args.IsValid = ((num mod 2) = 0)
Catch ex As Exception
args.IsValid = false
End Try
End Sub
</script>
</head>
<body>
<form runat="server">
<h3>CustomValidator ServerValidate Example</h3>
<asp:Label id="Message"
Text="Enter an even number:"
Font-Name="Verdana"
Font-Size="10pt"
runat="server" />
<p>
<asp:TextBox id="Text1"
runat="server" />
<asp:CustomValidator id="CustomValidator1"
ControlToValidate="Text1"
Display="Static"
ErrorMessage="Not an even number!"
ForeColor="green"
Font-Name="verdana"
Font-Size="10pt"
OnServerValidate="ServerValidation"
runat="server"/>
<p>
<asp:Button id="Button1"
Text="Validate"
OnClick="ValidateBtn_OnClick"
runat="server"/>
</form>
</body>
</html>
<script language="vbscript">
<!--
Sub ClientValidate(source, arguments)
If (arguments.Value mod 2) = 0 Then
arguments.IsValid=true
Else
arguments.IsValid=false
End If
End Sub
' -->
</script>
</code>
För C#
<code>
<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>
<script runat="server">
void ValidateBtn_OnClick(object sender, EventArgs e)
{
// Display whether the page passed validation.
if (Page.IsValid)
{
Message.Text = "Page is valid.";
}
else
{
Message.Text = "Page is not valid!";
}
}
void ServerValidation(object source, ServerValidateEventArgs args)
{
try
{
// Test whether the value entered into the text box is even.
int i = int.Parse(args.Value);
args.IsValid = ((i%2) == 0);
}
catch(Exception ex)
{
args.IsValid = false;
}
}
</script>
</head>
<body>
<form runat="server">
<h3>CustomValidator ServerValidate Example</h3>
<asp:Label id="Message"
Text="Enter an even number:"
Font-Name="Verdana"
Font-Size="10pt"
runat="server"/>
<p>
<asp:TextBox id="Text1"
runat="server" />
<asp:CustomValidator id="CustomValidator1"
ControlToValidate="Text1"
ClientValidationFunction="ClientValidate"
OnServerValidate="ServerValidation"
Display="Static"
ErrorMessage="Not an even number!"
ForeColor="green"
Font-Name="verdana"
Font-Size="10pt"
runat="server"/>
<p>
<asp:Button id="Button1"
Text="Validate"
OnClick="ValidateBtn_OnClick"
runat="server"/>
</form>
</body>
</html>
<script language="vbscript">
<!--
Sub ClientValidate(source, arguments)
If (arguments.Value mod 2) = 0 Then
arguments.IsValid=true
Else
arguments.IsValid=false
End If
End Sub
' -->
</script>
</code>
Kör du med Codebehind så lägger du bara din medod su vill köra där.
Mvh JohanSv: CompareValidator
Sv: CompareValidator
Mvh JohanSv: CompareValidator
så här har jag gjort
<code>
<EditItemTemplate>
<asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Namn") %>' ID="Textbox1" NAME="Textbox1">
</asp:TextBox>
<asp:customvalidator id="cv1" style="Z-INDEX: 104; LEFT: 136px; POSITION: absolute; TOP: 88px" runat="server"
display="Dynamic" OnServerValidate="Validation" ErrorMessage="Riders has a maximum selection of 2" ControlToValidate="TextBox1">
</asp:customvalidator>
</EditItemTemplate>
</code>
<code>
public void Validation(object source, ServerValidateEventArgs args)
{
if(args.Value == "test")
{
args.IsValid = false; ' om textboxen innehåller "test" så ska errormessage visas
}
else
{
args.IsValid = true;
}
}
</code>
jag har en validationsummary på sidan också