Avatar billede kak Nybegynder
12. maj 2006 - 12:02 Der er 2 kommentarer og
1 løsning

Links i et gridview

Jeg har et gridview, der ser således ud:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
DataSourceID="SqlDataSource1" AllowSorting=true OnSelectedIndexChanged="selectID">
    <Columns>
    <asp:CommandField ShowEditButton=false />
    <asp:TemplateField HeaderText="Rediger">
        <ItemTemplate>
            <asp:LinkButton ID = "selectThisID" runat = "server" CausesValidation ="false"
            text = "Rediger" commandname="select">
            </asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField DataField="id" HeaderText="ID" SortExpression="id" />
    <asp:BoundField DataField="name" HeaderText="Navn" SortExpression="name" />
    <asp:TemplateField HeaderText="test">
        <ItemTemplate>
            <asp:LinkButton ID = "selectThisName" runat = "server" CausesValidation ="false"
            text = "test" OnClick=mySub>
            </asp:LinkButton>
              </ItemTemplate>
    </asp:TemplateField>
    </Columns>
</asp:GridView>

Hvis jeg klikker på den første knap, kører subben "selectID" og i den sub, kan jeg så finde den aktuelle post, da den jo er selected.

Men jeg har brug for, at man også kan klikke på den anden knap, og så køre en anden sub, hvorfra jeg også kan se hvilken post der er valgt, og det virker ikke rigtigt.

mySub bliver godt nok kaldt, men hvordan kan jeg finde frem til, hvilken post der er klikket på?
Avatar billede snepnet Nybegynder
12. maj 2006 - 13:24 #1
Du kan gøre sådan her:

<ItemTemplate>
    <asp:LinkButton ID = "lblSomeButton" runat="server" CausesValidation="false" Text="DoSomething" CommandName="DoSomething" CommandArgument='<%# Eval("ID") %>' />
</ItemTemplate>   

Og så abbonnere på grid'ets rowcommand event:

<asp:GridView ID="GridView1" OnRowCommand="GridView1_RowCommand" ...

Og en handler i koden:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
  // her kan du så kigge på commandname og argument
  if(e.CommandName="DoSomething")
  {
    int id = int.Parse(e.CommandArgument);
    DoSomethingWithDataBasedOnId(id);
  }
}

Er du med på den?

Mvh
Avatar billede kak Nybegynder
12. maj 2006 - 13:55 #2
Yep, og det virker jo perfekt, så tak for den hurtige hjælp! Opretter du lige et svar?
Avatar billede snepnet Nybegynder
12. maj 2006 - 14:04 #3
Jeps :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