Avatar billede karsten_larsen Praktikant
15. august 2006 - 09:55 Der er 7 kommentarer og
1 løsning

Fange Buttom fra Gridview i Codebehind

Prøver på at få et felt i et gridview til at ændre status fra "on" til "off" og omvendt ved kun at trykke på "on" eller "off".

Hvordan får jeg kaldt en klasse som kan varetage den handling i databasen?

En mulighed er via HyperLinkField, men der må være en mere smart måde?

Har prøvet med Buttom i Gridview men kan ikke fange den i Codebehind med

    Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
        Dim OnOff As New class_OnOff
        OnOff.Change(GridView1.SelectedValue)
    End Sub

?:-) karsten_larsen
Avatar billede snepnet Nybegynder
15. august 2006 - 09:58 #1
Du kan abbonnere på eventet på helt normal vis:

I dit grid:
<asp:Button id="SomeButton" runat="server" OnClick="SomeButtonClick" />

protected void SomeButtonClick(object sender, EventArgs e)
{
  // gør noget her.
}

Mvh
Avatar billede snepnet Nybegynder
15. august 2006 - 09:59 #2
SelectedIndexChanged får du hvis vælger rækken.
Mvh
Avatar billede karsten_larsen Praktikant
15. august 2006 - 10:51 #3
hmm - ja Codebehind fanger den nu, men hvordan får jeg fat i den rette værdi "on" eller "off", brug for et lille fif




prøvet med

    Protected Sub SomeButtonClick(ByVal sender As Object, ByVal e As EventArgs)
        Dim OnOff As New Class_OnOff
        'OnOff.demo(GridView1.SelectedDataKey.ToString)


        ' tjekke at det virker efter hensigten
        Dim Return_fra_demo As String = OnOff.demo(GridView1.SelectedDataKey.ToString)
        Label1.Text = Return_fra_demo
    End Sub


og klassen ser således ud

Public Class Class_OnOff
    Function demo(ByVal var_OnOff As String) As String
        Dim asdf As String = var_OnOff
        Return asdf
    End Function
End Class


? karsten_larsen
Avatar billede snepnet Nybegynder
15. august 2006 - 11:05 #4
Du kan bare sætte den som kommandoargument på knappen.
CommandArgumnet = <databindingsudtryk for din værdi>
Mvh
Avatar billede karsten_larsen Praktikant
15. august 2006 - 11:42 #5
Hvis jeg har forstået dig rigtig så burde dette være en løsning

            <asp:TemplateField ShowHeader="False" HeaderText="Status">
                <ItemTemplate>
                    <asp:Button ID="SomeButton"  CommandArgument='<%# Eval("OnOff") %>' runat="server" CausesValidation="False" OnClick="SomeButtonClick"
                        Text='<%# Eval("OnOff") %>' ></asp:Button>
                </ItemTemplate>
            </asp:TemplateField>


og

    Protected Sub SomeButtonClick(ByVal sender As Object, ByVal e As EventArgs)
        Dim OnOff As New Class_OnOff
        'OnOff.demo(GridView1.SelectedDataKey.ToString)


        ' tjekke at det virker
        Dim Return_fra_demo As String = OnOff.demo(GridView1.SelectedDataKey.ToString)


        Label1.Text = Return_fra_demo

    End Sub

Men jeg får fejlen:

Objektreferencen er ikke indstillet til en forekomst af et objekt.

vælger jeg SelectedIndex så får jeg -1 i stedet for "on" eller "off"

Hvor er det jeg laver (sikkert) en elemtær fejl?

? karsten_larsen
Avatar billede snepnet Nybegynder
15. august 2006 - 11:54 #6
Du vælger jo ikke noget i grid'et, så du kan ikke trække noget fra en valgt række....
Hvis du "gratis" vil have rækken med - må du benytte f.eks. select eventet.
F.eks. kan du sætte rækkeindex ind som argument istedet, eller benytte CommandName lidt kreativt.
Mvh
Avatar billede karsten_larsen Praktikant
15. august 2006 - 12:04 #7
Det gav god mening og virker perfekt. Tak for hjælpen. Vil du lave et svar?

:-) karsten_larsen
Avatar billede snepnet Nybegynder
15. august 2006 - 12:32 #8
Kommer her :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