webForumDet fria alternativet

lagra objekt i ett hiddenfield

.NETur .NET

7 svar · 443 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

Kan man lagra ett objekt i ett hiddenfield för att skicka det till en annan sida och där arbeta med det?

Medlem sedan juni 20019 024 inlägg
#2

Ja, det går. Men frågan är om det är en sådan bra lösning. Vad är det du ska göra?

How to: Serialize an Object
How to: Deserialize an Object

Medlem sedan dec. 19996 721 inlägg
#3

Nej, allt som transporteras är ju text...ASP.NET kan mycket, men att trolla med HTTP-standarden ingår inte...

Om ditt objekt är serialiserbart (serializable) så kan du dock du lagra en representation av objektet i ett hiddenfält eller i viewstate, och sedan deserialisera det på andra sidan.

Men vad är det egentligen du vill göra?

Medlem sedan jan. 20013 406 inlägg
#4

Jag har en klass som heter Tid och den hanterar tid rapporterad på ett företag.
Varje tidspost sparas i en tabell. Den unika nyckeln för består av 5 poster. anvandarid, kund, projekt, underprojekt, arbdag, period.

(krånglig nyckel men den går inte att ändrå på eller får inte ändras.)

Jag ska rada upp ett formulär som är dynamiskt dvs man kan välja att lägga till olika projekt i sin lista för tidsrapportering.

Den ska visa alla aktiva kunder med projekt som man jobbar på samt alla 7 dagar i veckan. På varje dag ska man kunna fylla i timmar på varje kund. Detta ska sedan sparas eller uppdateras i databasen.

Enkelt exempel:

			                Måndag 	Tisdag	Onsdag	Torsdag	Fredag	Lördag	Söndag
Kund1	Projekt1	Delprojekt1	[_______]	[_______]	[_______]	[_______]	[_______]	[_______]	[_______]
Kund2	Projekt2	Delprojekt2	[_______]	[_______]	[_______]	[_______]	[_______]	[_______]	[_______]
Kund4	Projekt1	Delprojekt1	[_______]	[_______]	[_______]	[_______]	[_______]	[_______]	[_______]
Kund8	Projekt2	Delprojekt2	[_______]	[_______]	[_______]	[_______]	[_______]	[_______]	[_______]

Tänkte att det kunde vara smart att i ett hiddenfield spara objektet till varje ifyllnadsruta. Detta eftersom den unika nyckeln är så lång.

Fälten ska ju sedan hämtas dynamiskt och sedan sparas.

Medlem sedan mars 20034 471 inlägg
#5

En variant är kanske att antingen ha ett hiddenfält per attribut i nyckeln per rad, eller att kontatinera informationen med någon avgränsare (som aldrig förekommer i värdena) emellan. Alltså tex:

<input type="hidden" name="fieldName" value="<anvandarid_kund_projekt_underprojekt_arbdag_period>">
>">

När du sedan hämtar infon kan du dela upp value:t i delar avgränsade av _ och du får tillbaka din unika nyckel.

Medlem sedan jan. 20013 406 inlägg
#6

Visst har jag tänkt på den lösningen dock så är typ alla nycklar av typen char(8) så de kan innehålla vad som helst. Finns dessutom över 10 000 poster på vissa av nycklarna.
Man kan ju även har flera hiddenfield också.

Medlem sedan mars 20034 471 inlägg
#7

Addeladde skrev:

Visst har jag tänkt på den lösningen dock så är typ alla nycklar av typen char(8) så de kan innehålla vad som helst.

Hur sannolikt är det att de tex innehåller strängen '##' eller '¤¤' eller något annat udda?

Medlem sedan jan. 20013 406 inlägg
#8

# finns det vet jag men samtidigt så är det teoretiskt möjligt att spara ett kundid med det tecknet så det är ingen bra lösning.

Har fått escape tecknen för att t.ex. kunna skicka ett kundid in i en javascript funktion just för att vissa tecken förstörde funktionen.

142 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)