Hvordan returneres værdier for en valgt række i en asp.Net tabel

Tags:    table tablerow selectedindex

Jeg har lavet en dynamisk oprettet tabel i ASP.NET/C#. Hver række representerer en bil og dens data (Indeholdende ialt 6 celler). Det vil sige, at der er lige så mange rækker som der er biler i databasen. Jeg har lavet en hyperlink til rækkens billede og navnet på bilen. Disse linker begge til en Cars.aspx side. Jeg har i samme række en hiddenfield der indeholder bilens id, så jeg kan hente bilens øvrige data med over
Jeg ved ikke hvordan jeg kan få oplyst værdierne for den valgte række. Altså at kunne udtrække den id værdi der er for den pågældende række.

Værdierne kommer fra en dataTabel, og billederne kommer som BLOB fra DB og bliver indlæst via en Handler.ashx fil.
ID´et ligger i kolonne 1 i datatabellen og da jeg har en
foreach (DataRow row in dt.Rows) der løber hver række igennem, så kan man måske tilføje noget den vej.
Eller Måske skal der et javascript til hvilket jeg ikke har rørt så meget ved. Men da der ikke er en selectedIndex eller selectedIndexChanged, så ved jeg ikke lige hvad jeg skal gøre

Når man bliver linket over på Cars.aspx, så skal id´et fra den pågældende række anvendes til at hente bilens øvrige data frem på siden.

På forhånd tak og sig til hvis i ønsker andre oplysninger






10 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 15 karma
Sorter efter stemmer Sorter efter dato
Som vi snakkede om i skolen:

Default.aspx:
Fold kodeboks ind/udHTML kode 


test.aspx
Fold kodeboks ind/udHTML kode 


test.aspx.cs
Fold kodeboks ind/udCSharp kode 


Forklaring for andre:

I stedet for at arbejde med en værdi i hiddenfield, så er det nemmere at gemme bilens ID i querystring.



Jeg er ikke helt sikker på hvad du vil nå frem til. Men ud fra hvad jeg forstår skal du blot gå ind og angive en QueryString["id"] til din url parameter i Cars.aspx.

Et eksempel: ved bil med ID 1, skal url adressen se sådan her ud - Cars.aspx?id=1 - og ved ID 2 skal url adressen se sådan her ud - Cars.aspx?id=2. Top simpelt.

Hvis du udskriver din data i oversigten med en Eval(), kan du gøre nogenlunde det her:

Fold kodeboks ind/udHTML kode 


I din Cars.aspx definerer du så dit ID som en string:

Fold kodeboks ind/udCSharp kode 


I din SQL kan du så hente data således:

Fold kodeboks ind/udSQL kode 


Så skal du blot få dit id ind i SQL'en afhængig af hvordan du har sat dit site op. Eksempelvis med en Parameters.

Fold kodeboks ind/udCSharp kode 


Nu har jeg taget højde for at du bruger C#



Hej Daniele

Umiddelbart er det ikke det jeg søger, da jeg allerede har implementeret det du viser.

Jeg kan sagtens hente Cars.aspx siden med id´en fra en given bil. Men idd ét står i et hiddenfield i den række i tabellen som brugeren har valgt.

Så jeg skal ud af tabelrækken hente id´et som fortæller hvilke værdier der skal indlæses i Cars.aspx.



Er det et gridview du bruger?



Startede egenylig i et gridview og gik derefter over i en datalist indeholdende min tabel. Men der kunne jeg slet ikke få fat i tabellen. Så derfor har jeg nu bare en void metode der dynamisk generer hele tabellen i C#. Der er slet ikke noget i tabel.aspx siden (Den side der skal linkes fra).

private void InitCarTable()
{
Table tb = new Table();
foreach (DataRow row in dt.Rows)
{
TableRow tr = new TableRow();

OSV.
}
}

Slutter af med at lave et panel og smider tabellen derind og derefter over i en <div> der ligger som det eneste i aspx.





Ok, det virker noget som et skridt tilbage i stedet for at bruge de kontroller som du allerede har til rådighed, som f.eks. et gridview. Der er det lige ud af landevejen at fange de data som ønskes.



OK. Har du en idé til en indgangsvinkel.
Har nok kun forestillet mig, at jeg skulle kunne hive id´et ud fra rækken, da jeg kan hente alle andre værdier ud fra kun den ene id



Hej igen Daniele

Du får sku ret. Det var det du beskrev aller øverst i din indledende svar.

Jeg havde ikke lige luret det med query stringen oppe i url`en. Havde en querystring, men ikke jeg anvendte den ikke på den måde




Hej Rasmus,

Undskyld at jeg ikke lige har været aktiv. Det er rart at vide at det virker :)



Ja så kan jeg komme videre. Man lærer noget hver dag.



t