Toon posts:

[ASP.NET 2005] DetailsView/FormView get Value

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,
Ik wil van een detailsview of een formview de waarde uit de textboxen halen.
Ik heb echt van alles geprobeerd en op internet gezocht maar lijkt wel of het niet kan, misschien is dat ook wel zo, maar het zou mij heel raar lijken als dat niet mogelijk is. Bij een gridview lukt het wel, daar heb je selectedrow, en detailsview en formview hebben maar 1 rij.
Ik had gehoopt dat zit wou werken bijv: FormView1.Row.Cells(0).Text
maar dan krijg ik niks terug.
Ik hoop dat iemand mij kan helpen met dit probleem en als het niet mogelijk is een alternatief weet.
alvast bedankt

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
Een details view en een formview zitten toch altijd gekoppeld aan een database? kun je niet meteen de juiste database rij uitlezen?

~ Mijn prog blog!


Verwijderd

Topicstarter
therat10430 schreef op vrijdag 29 december 2006 @ 10:15:
Een details view en een formview zitten toch altijd gekoppeld aan een database? kun je niet meteen de juiste database rij uitlezen?
Ja die zitten gekoppeld aan een GridView bij mij, en die zit weer gekoppeld aan de Database.
Maar ik wil eerst controles uitvoeren op de ingevoerde data voordat een record wordt ingevoerd of gewijzigd. Vandaar dat ik de waarden wil hebben.
Nou heb ik het volgende nog geprobeerd:
Visual Basic:
1
2
3
4
5
For i = 0 To 10
   For j = 0 To DetailsView1.Rows(i).Cells.Count - 1
      Debug.Print("rij " & i & " cell " & j & " = " & DetailsView1.Rows(i).Cells(j).Text)
   Next
Next

Dan bij cell 0 krijg ik de kolomnaam en bij cell 1 krijg ik niks terug en die zou de tekst/waarde terug moeten geven.

Verwijderd

Topicstarter
ik heb de oplossing gevonden.

Visual Basic:
1
2
3
4
5
For i As Integer = 0 To e.NewValues.Count - 1
   If e.NewValues(i) IsNot Nothing Then
      Debug.Print(Server.HtmlEncode(e.NewValues(i).ToString()))
   End If
Next

wat sneller dan ik had verwacht de oplossing gevonden.

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:04
In welke event-handler schrijf je deze code ?

https://fgheysels.github.io/


Verwijderd

Is het ook niet zo dat het afhankelijk is van je property binding wanneer de waarde echt verandert? (dus OnPropertyChange of OnValidate)

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:04
Als het gaat om het checken of de waardes als correct kunnen beschouwd worden, zou ik die checks zowiezo in OnValidate oid doen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op vrijdag 29 december 2006 @ 10:56:
In welke event-handler schrijf je deze code ?
DetailsView1_ItemUpdating

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 29 december 2006 @ 10:58:
Is het ook niet zo dat het afhankelijk is van je property binding wanneer de waarde echt verandert? (dus OnPropertyChange of OnValidate)
maar met deze code lees je gewoon elke keer alle waarden uit die bij die record horen,
dus je hele detailsview. Vervolgens kan je zelf een selectie maken welke waarden je wilt controleren

Verwijderd

Verwijderd schreef op vrijdag 29 december 2006 @ 11:18:
[...]

maar met deze code lees je gewoon elke keer alle waarden uit die bij die record horen,
dus je hele detailsview. Vervolgens kan je zelf een selectie maken welke waarden je wilt controleren
Ik ben niet zo into databinding in ASP.net, maar ik weet dat het bronobject (dus NIET de DB maar de DataAdapter / het DataObject) pas direct gewijzigd wordt als je OnPropertyChanged aan zet. Anders wordt het pas gewijzigd bij de OnValidate. Dat is dus ook misschien een reden dat je niet altijd de waarde krijgt die je verwacht (als dit ook opgaat voor ASP.net)

  • Starck
  • Registratie: September 2004
  • Niet online
Wat je nodig hebt is de findcontrol() functie.

http://msdn2.microsoft.co....detailsview_methods.aspx

Hiermee zoek je via de ID de control op. En die zet je in een variabele die je cast naar het juiste type. Zodat je zn properties uit kan lezen.

Wat je ook kan doen is: Maak templatefields van de textboxen. Je kan dan via de designer er wel bij. Maak dan een onchanged event op de textboxen aan. En wanneer je in het event zit kan je de sender casten naar het type textbox en zo ook de properties uitlezen.

Verwijderd

Topicstarter
bedankt voor de tips, ik zal ze uit gaan proberen :*)
Pagina: 1