24. oktober 2005 - 12:49Der er
10 kommentarer og 1 løsning
RequiredFieldValidator med dynamisk Error
Hej,
Ville lige høre om der er nogen der ved om det er muligt at sætte dynamisk Errormessage på sin RequiredFieldValidator, eks. en tekststreng fra sin database.
Jeg har prøvet nedenstående, med at lave nogle udtræk, og så sætte fejlmeddelelsen lig min record.
Dvs. istedet for:
<asp:RequiredFieldValidator id="Req" runat="server" ErrorMessage="Please enter your name" ControlToValidate="txtName"></asp:RequiredFieldValidator>
Det kan godt lade sig gøre, men det ser ikke helt rigtigt ud det du har skrevet her. ErrorMessage="<% RESPONSE.WRITE("OBJREADER("errName") %>" Du har et "-tegn for meget og hvad er det OBJREADER-funktionen gør?
Hov ja, det gik lige lidt for hurtigt med at skrive eksemplet ned. Jeg mener:
I min kode, noget i stil med:
Sub hent_fejlmeddelelser() Dim VariabelError as String Sql = "Select errName FROM TabelMedFejlMeddelelser;" If objReader.read() Then VariabelError = objReader("errName") End If End Sub
Ok. Men det ser nu stadig en anelse forkert ud. Du sætter VariabelError = objReader("errName"). Så skal du ikke skrive objReader(VariabelError) når du vil hente fejlmeddelelsen.
Prøv med: Sub hent_fejlmeddelelser() Dim VariabelError as String Sql = "Select errName FROM TabelMedFejlMeddelelser;" If objReader.read() Then VariabelError = objReader("errName") End If Return VariabelError End Sub
Ok, men jeg skal nok have flere fejlmeddelelser ud, så det vil komme til at se således ud:
Sub hent_fejlmeddelelser() Dim VariabelError1, VariabelError2, VariabelError3 as String Sql = "Select * FROM TabelMedFejlMeddelelser;" If objReader.read() Then VariabelError1 = objReader("errName1") VariabelError2 = objReader("errName2") VariabelError3 = objReader("errName3") End If End Sub
Skal jeg returnere noget her, og hvad sætter jeg i hver ErrorMessage = ?
Så kunne du tilføje en parameter til funktionen: Sub hent_fejlmeddelelser(errorNumber As Integer) Dim VariabelError1, VariabelError2, VariabelError3 as String Sql = "Select * FROM TabelMedFejlMeddelelser;" If objReader.read() Then VariabelError = objReader("errName" + errorNumber) End If Return VariabelError End Sub ... ErrorMessage="<% Response.write(hent_fejlmeddelelser(1)) %>"
Men har du mere kode end dette her? Er det forkortet eksempel? Jeg kan ikke helt forstå hvor du får objReader fra og hvornår du sætter sql-queryen?
objComm = New OleDbCommand(SQL, objConn) objReader = objComm.ExecuteReader()
efter min SQL-sætning. Objreader("errName") er så min første record, som indeholder fejlmeddelse nr. 1 som jeg har hentet fra min DB.
Men den vil virkelig ikke udskrive noget dynamisk når det står som ErrorMessage = "<% Response.write(Objreader("errName"))%>". Jeg har prøvet at sætte min req til display="dynamic" men det hjælper heller ikke - det er som om den kun kan indeholde tekst der er hardkodet ind i den. Hvis jeg prøver at lave en Response.write(Objreader("errName")) i min kode, inden jeg eksekverer min submit-button, så udskriver den fint den fejlmeddelelse som jeg gerne vil have proppet ned i min ErrorMessage.
Hvad er errorNumber? Jeg har bare poster liggende i min db, i kolonner kaldet f.eks. errorName1, errorName2, errorNamme3. Så jeg forstår ikke helt hvordan jeg kan lave en hent_fejlmeddelelser(1)).
Bliver nødt til at lukke igen, da jeg ikke kan komme videre, men tak for forsøget..
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.