che voglio fare questo scenario:
- chiamata
LoadEditCategory
metodo (metodo genitore).
- Il metodo padre (
LoadEditCategory
) richiede un argomento int
(CategoryID
).
- Il controllo utente figlio è
RightControlPanel
che si trova nella stessa cartella della pagina principale.
controllo figlio utente
1- Aggiungere un Action
(_LoadEditCategory
)
public Action<int> _LoadEditCategory = null;
<int>
è int
argomento (CategoryID
).
2- Utilizzare questo Action
nell'evento pulsante (btnSave
nome del pulsante) come questo:
void btnSave_Click(object sender, EventArgs e)
{
//123 is test integer for CategoryID
_LoadEditCategory(123);
}
pagina padre o controllo utente genitore
3- metodo Add genitore
private void LoadEditCategory(int CategoryID)
{
// CategoryID is 123 in my example
//Do some things with CategoryID
}
4- Aggiungere questo codice quando si carica il controllo utente secondario (RightControlPanel
)
//Load child user control
RightControlPanel si = this.LoadControl(this.ControlPath + "RightControlPanel.ascx") as RightControlPanel;
if (si != null)
{
...
//For call parent method in child user control
si._LoadEditCategory = c => LoadEditCategory(c);
...
}
fonte
2016-12-14 08:50:03
Questo funzionerà ma è una cattiva idea. Rompe diverse linee guida di progettazione e best practice. –
@Henk ovviamente rompe le best practice, ma se il richiedente non capisce qualcosa di semplice come funziona, come sarà in grado di capire cose più grandi in seguito. È sempre meglio usare prima il modo più semplice, anche se è sbagliato, solo per imparare. –
Lo so, ma per i futuri riferimenti e inciampi nei lettori penso che sia sempre meglio almeno menzionarlo. –