Databas: * Kan du inte i Calculator_Close metoden göra något i stil med detta: Det hela löste sig:Hitta en usercontrol i CodeBehind
Plattform: ASP.NET
Språk: VB
På min .aspx-sida har jag en kalkylator som ligger som en Usercontrol i en Panel med pnlCalculatorFrame.Visibility = False (för att kunna styra via css).
När användaren klickar på en ikon anropas Calculator_Open -> pnlCalculatorFrame.Visibility = True och allt är frid och fröjd.
# SB_EditDamage.aspx-sidan
<code>
<asp:Panel ID="pnlCalculatorFrame" Runat="server" Width="212" Height="150" Visible="False">
<SkadeBas:Calculator Runat="Server" ID="Calculator"/>
</asp:Panel>
</code>
# Sub: Calculator_Open
<code>
Public Sub Calculator_Open(ByVal Obj As Object, ByVal E As CommandEventArgs)
pnlCalculatorFrame.Visible = True
End Sub
</code>
Problemet är när jag vill stänga pnlCalculator via CodeBehind. Inuti Panelen har jag en tabell som innehåller en stäng knapp:
# SB_Calculator.ascx-sidan (UserControl)
<code>
<TABLE id=tblCalculator cellSpacing=0 cellPadding=0 border=0>
<TR>
<TD align=middle colSpan=6 class="TableHeader">Räkna ut kostnad</TD>
<td><asp:Button ID="btnClose" Runat="server" Text="Stäng" CssClass="FormButton" OnClick="Calculator_Close"/></td>
</TR>
...
</code>
Om jag lägger suben: Calculator_Close i aspx.vb (CodeBehind för .aspx-sidan) så får jag följande felmeddelande när sidan laddas: 'Calculator_Close' is not a member of 'ASP.SB_Calculator_ascx'.
Om jag lägger suben i ascx.vb (CodeBehind för UserControl) så får jag ju såklart ett felmeddelande när jag skall bygga sidan eftersom pnlCalculatorFrame INTE finns i UserControl-sidan.
#Sub: Calculator_Close
<code>
Public Sub Calculator_Close(ByVal Obj As Object, ByVal E As EventArgs)
pnlCalculatorFrame.Visible = False
End Sub
</code>
Snurrigt, javisst!!!Sv: Hitta en usercontrol i CodeBehind
Parent.Visible = False
Om inte det funkar kan du ju prova med detta:
Parent.pnlCalculatorFrame.Visible = FalseSv: Hitta en usercontrol i CodeBehind
<code>
Public Sub Calculator_Close(ByVal Obj As Object, ByVal E As EventArgs)
Page.FindControl("pnlCalculatorFrame").Visible = False
End Sub
</code>
Tack Ricki, du fick in mig på rätt spår :-)