Avatar billede mochr Nybegynder
17. februar 2007 - 15:36 Der er 12 kommentarer og
1 løsning

Få data med selected row.

Jeg har et varekatalog i form af et gridview.

Når man trykker på køb skal den starte en delegate (delegaten har jeg styr på).

Problemet er at den ikke kan få de rigtige informationer med over. Den skal smide produkt id, produkt størrelse og antal med over.
Lige nu bruger jeg eventet RowCommand på gridviewet, men jeg er ikke sikker på, det er den rigtige jeg skal bruge for at fange eventet på den valgte række.
Gridviewet har ProductID og UnitID som datakeyNames hvis det er en hjælp.
Avatar billede mochr Nybegynder
18. februar 2007 - 15:27 #1
Hvis i mangler mere info, så sig lige til.
Avatar billede snepnet Nybegynder
18. februar 2007 - 20:45 #2
Har ud prøvet at bruge:
ditGridView..SelectedDataKey["ProductID"] / ditGridView..SelectedDataKey["UnitID"] ?
Mvh
Avatar billede mochr Nybegynder
18. februar 2007 - 21:11 #3
Ja, det har jeg prøvet.
Den kommer bare med Object reference not set to an instance of an object.

Måske jeg lige skulle tage at debug(åndsvagt jeg ikke har prøvet det endnu), for at teste om der overhovedet kommer nogen data der i.
Avatar billede mochr Nybegynder
18. februar 2007 - 21:16 #4
Nu har jeg lige debugget mig igennem.
Den fanger godt nok eventet når man trykker. Og i DataKeyNames har den ProductID og UnitID.
MEN, den skriver bare null når jeg udskriver den.(laver en JS alert med dens indhold)
Avatar billede snepnet Nybegynder
18. februar 2007 - 21:43 #5
Der er ingen grund til at du plopper det ud med et script - hvis du alligevel samler værdien på, kan du bare checke det når du debugger:
string pid = ditGridView.SelectedDataKey["ProductID"];
Så skulle du jo gerne have en værdi i pid.
Hvis du gerne vil have det visuelt når du bruger siden - kan du skrive den slags beskeder ud i dit trace, eller til dit outputvindue med hhv.
Trace.WriteLine(...) og System.Diagnostics.Debug.WriteLine(...)
Mvh
Avatar billede snepnet Nybegynder
18. februar 2007 - 21:44 #6
Og ... hvis det er i forbindelse med at du "selecter" rækken - kan du gøre det i en handler til SelectedIndexChanged.
Mvh
Avatar billede mochr Nybegynder
18. februar 2007 - 21:58 #7
Fik vist ikke formulert mig rigtig.
Det med scriptet ved jeg godt. Det var bare for at teste når jeg ikke debugger.

Jeg bruger RowCommand til at fange eventet med, og det kan den osse godt. Den kan bare ikke få data ud. Altså mine datakeyfields(uintid og productid).

Men det var SelectedIndexChanged jeg skulle bruge for at den gad.
Tak for det.

Smid lige et svar :)
Avatar billede mochr Nybegynder
18. februar 2007 - 22:09 #8
Lige et tillægs spørgsmål hehe.

Jeg har en textbox inde i gridviewet som er antalet af vare.
Hvad vil være den bedste måde at tilgå den op ?

Er det ved at navigere ind ? Altså Rows[i].Cells[3].Control[1].
Kan ikke rigtig få FindControle til at virke.
Avatar billede snepnet Nybegynder
18. februar 2007 - 22:56 #9
Hvis du laver en template kolonne istedet - kan du sætte en tekstboks ind som du kan navngive.
Så kan du fange den med FindControl

<asp:GridView ID="grid" runat="server">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="text" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Så kan du lave en FindControl("text") på et vilkårligt Row:
TextBox tb = someRow.FindControl("text") as TextBox;

Mvh
Avatar billede mochr Nybegynder
18. februar 2007 - 23:23 #10
Yes, jeg har et template til min textbox.

I en datalist kan jeg bruge e.FindControle.

Men når jeg bruger SelectedIndexChanged i gridview kan jeg ikke bruge e.
Skal jeg ikke køre igennem hele gridviewet og så søge efter den selectede række, også finde textbox'en ?
Avatar billede snepnet Nybegynder
18. februar 2007 - 23:33 #11
Nej du kan ikke bruge dit e direkte, men når du står med din valgte række i hånden - kan du gøre det på den:
ditGrid.SelectedRow.FindControl(...)
Mvh
Avatar billede mochr Nybegynder
18. februar 2007 - 23:46 #12
Super, tak :)
Avatar billede snepnet Nybegynder
19. februar 2007 - 08:07 #13
Var så lidt :o)
Mvh
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester