chcę zrobić ten scenariusz:
- połączeń
LoadEditCategory
metoda (metoda macierzysta).
- Metoda macierzysta (
LoadEditCategory
) wymaga argumentu int
() (CategoryID
).
- Kontrola użytkownika podrzędnego to
RightControlPanel
w tym samym folderze stron nadrzędnych.
Child Control User
1- Dodaj Action
(_LoadEditCategory
)
public Action<int> _LoadEditCategory = null;
<int>
jest int
argument (CategoryID
).
2- Służy Action
w przypadku przycisków (btnSave
nazwa przycisku), jak to:
void btnSave_Click(object sender, EventArgs e)
{
//123 is test integer for CategoryID
_LoadEditCategory(123);
}
strony nadrzędnej kontroli użytkownika lub rodziców
3- metoda dodawania dominująca
private void LoadEditCategory(int CategoryID)
{
// CategoryID is 123 in my example
//Do some things with CategoryID
}
4- Dodaj ten kod po załadowaniu kontroli użytkownika podrzędnego (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);
...
}
To zadziała, ale to zły pomysł. Łamie kilka wytycznych projektowych i najlepszych praktyk. –
@Henk oczywiście łamie najlepsze praktyki, ale jeśli pytający nie rozumie czegoś prostego, jak to działa, jak będzie w stanie zrozumieć większe rzeczy później. Zawsze najlepiej używać najpierw najprostszy sposób, nawet jeśli jest on zły, tylko po to, aby się uczyć. –
Wiem, ale do przyszłego czytania i do lektury uważam, że najlepiej jest przynajmniej o tym wspomnieć. –