webForumDet fria alternativet

Server Validation Me.txtValidator.Enabled = False/True

.NET

1 svar · 224 visningar · startad av CatZ

Medlem sedan jan. 20022 440 inlägg
Frågan#1

Jag har en customvalidator som jag bara vill validera om jag läger till en ny användare. Alltså om en användare ska uppdateras ska kollen av hur många tillåtna användare kunden har inte köras, försökte med följande kod men då måste jag trycka på spara två gånger av någon oförklarlig anledning.

Sub validateUsers(ByVal sender As Object, ByVal args As ServerValidateEventArgs)
	If Me.txtid.Text = "" Then
		sender.Enabled = True
		Dim myContactID As Integer
		Dim myNumberOfUsers As Integer
		Dim myCurrentNumberOfUsers As Integer
		Dim myRenewalDate As DateTime

		myCurrentNumberOfUsers = myutils.dbExecuteScalar("SELECT COUNT(*) FROM tblEmployees")

		If (myCurrentNumberOfUsers >= myNumberOfUsers) Then
			args.IsValid = False
			sender.Visible = True
			sender.ErrorMessage = err1
			Exit Sub
		End If
	Else
		' If updating a contact disable the uservalidator
		sender.Enabled = False
	End If
End Sub

Någon som förstår varför jag måste trycka på spara två gånger om jag ska uppdatera en användare, det verkar som att applikationen först sätter USerValidator får väl helt enkelt sätta args.isvalid till True istället för att oskadliggöra själva kontrollen.

////RED

Det fungerar inte det heller, när det handlar om att uppdatera så måste jag alltid trycka två gånger på knappen... blir tokig, förstår helt enkelt inte vad som är fel.

Av någon anledning får jag efter första trycket upp meddelandet at IsValid = False

Medlem sedan jan. 20022 440 inlägg
#2

Tydligen blir det problem om man sätter enable/disable på en kontroll mitt i den sub man validerar. Det måste göras innan den sub'en körs.

278 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)