Hej Hej!Uppdatera DataGrid i annan UserControl
Har en sida default.aspx
Denna innehåller två stycken User Controls a.ascx och b.ascx
a.ascx innehåller en datagrid
b.ascx innehåller ett inmatnings formlär av data. När jag trycker på knappen spara i b.ascx så vill jag att datagrid i a.ascx uppdateras. Hur åstakommer jag detta?!
När jag trycker på knappen körs pageload i default.aspx och sedan i a.ascx därefter händelsen för knappen och datan lägstill i databasen.
Vad jag vill är att pageload körs sist alternativt att jag kan komma åt en funktion i a.ascx i händelsen för knappen i b.ascx......
Någon som vet?!
RogerSv: Uppdatera DataGrid i annan UserControl
Ja, du måste använda något som kalles Events och höja dessa. (vb.net RaiseEvent ...)
Du kan säkert även använda attributet
vb.net
Shared
C#
Static
på metoder som du vill komma åt från andra objekt, utan att först initiera dessa.
Ex.
<code>
Public Shared Sub ReloadDataGrid()
'...
End Sub
</code>
Jag skulle förmodligen använda det förstnämnda.
Jag ska kort försöka beskriva förloppet. (Vb.net kod)
I koden för webbformuläret default.aspx behövs en metod som kan fånga en händelse, i det här fallet b.ButtonClick()
<code>
'...
Private Sub b_ButtonClick() Handles b.ButtonClick()
a.ReloadDataGrid()
End Sub
'...
</code>
I koden för user control a.ascx behövs en public metod för att ladda datagrid.
<code>
'...
Public Sub ReloadDataGrid()
' Enter code to reload the data grid here
End Sub
'...
</code>
I koden för user control b.ascx behövs en metod för att hantera att användaren klickar på knappen och en publik händelse. (som kan fångas av t.ex. default.aspx)
<code>
'...
Public Event ButtonClick()
'...
Private Sub Button1_Click(Byval sender As Object, Byval e As System.EventArgs)
RaiseEvent ButtonCllick() 'Skickar händelsen till eventuell förälder, t.ex. default.aspx
End Sub
</code>
Det finns några alternativa sätt för att uppnå samma sak.
Jag har så kort och enkelt som möjligt försökt visa ett sätt.
Säg till om jag ska förtydliga eller om allt är oklart.
Lycka till!
Håkan