У меня есть страница Default.aspx, и я использую в ней пользовательский контроль. При некоторых условиях в usercontrol.cs мне нужно вызвать функцию, присутствующую на странице Default.aspx.cs (например, на родительской странице пользовательского элемента управления). Пожалуйста, помогите и скажите мне, как это сделать.Вызов функции родительской страницы из пользовательского элемента управления
ответ
Вы должны бросить Page
свойство к фактическому типу:
var def = this.Page as _Default;
if(def != null)
{
def.FunctionName();
}
метод должен быть публичным:
public partial class _Default : System.Web.UI.Page
{
public void FunctionName()
{
}
}
Но обратите внимание, что это не лучшей практики, поскольку вы Аппаратно связывая UserControl
с Page
. Обычно одна цель UserControl - повторное использование. Уже не здесь. Лучший способ общения с UserControl
с его страницей - это использование настраиваемого события, которое может обрабатывать страница.
Mastering Page-UserControl Communication - event driven communication
Попробуйте
MyAspxClassName aspxobj= new MyUserControlClassName();
aspxobj.YourMethod(param);
Вы шутите? Помимо того, что 'UserControl' не является' страницей', использование конструктора для создания страницы (или 'UserControl') не будет работать, если вы хотите получить доступ к элементам управления на этой странице или' UserControl', поскольку этот экземпляр не создается из ASP.NET через жизненный цикл страницы. –
Добавить событие пользовательского элемента управления:
public event EventHandler SpecialCondition;
Raise это событие внутри пользовательского элемента управления при выполнении условия:
private void RaiseSpecialCondition()
{
if (SpecialCondition != null) // If nobody subscribed to the event, it will be null.
SpecialCondition(this, EventArgs.Empty);
}
Затем на странице, содержащей пользовательский элемент управления, прослушивайте событие:
public partial class _Default : System.Web.UI.Page
{
public void Page_OnLoad(object sender, EventArgs e)
{
this.UserControl1.OnSpecialCondition += HandleSpecialCondition;
}
public void HandleSpecialCondition(object sender, EventArgs e)
{
// Your handler here.
}
}
Вы можете изменить EventArgs
к чему-то более полезным, чтобы передать значения вокруг, если это необходимо.
parent.aspx.cs
public void DisplayMsg(string message)
{
if (message == "" || message == null) message = "Default Message";
Response.Write(message);
}
для вызова функции родительской страницы из пользовательского элемента управления используйте следующее: UserControl.ascx.cs
this.Page.GetType().InvokeMember("DisplayMsg", System.Reflection.BindingFlags.InvokeMethod, null, this.Page, new object[] { "My Message" });
Это прекрасно работает для меня ..
- 1. Вызов метода родительской страницы из пользовательского элемента управления
- 2. Вызов функции управления пользователем с родительской страницы
- 3. вызов метода на родительской странице из пользовательского элемента управления
- 4. Вызов метода пользовательского элемента управления из родительской формы
- 5. Изменение названия родительской страницы из пользовательского элемента управления
- 6. Вызов метода родительской страницы из дочернего элемента управления в C#
- 7. Вызов метода на родительской странице с помощью пользовательского элемента управления
- 8. Проверка пользовательского элемента управления ASP.NET с его родительской страницы
- 9. Контроль доступа динамически добавленного пользовательского элемента управления с родительской страницы
- 10. Как получить изображение пользовательского элемента управления с родительской страницы?
- 11. Вызов метода с родительской страницы после пользовательского контроля?
- 12. C# WPF .NET 4 - вызов родительской функции из пользовательского элемента управления
- 13. Вызов функции из динамически добавленного пользовательского элемента управления
- 14. Обновление главной страницы из пользовательского элемента управления
- 15. Создание UserControl на родительской формы из пользовательского элемента управления
- 16. Вызов метода на родительской странице из динамически созданного пользовательского элемента управления
- 17. Вызвать функцию родительской aspx-страницы из веб-пользовательского управления
- 18. Является ли это MakeRedemption.aspx родительской страницей для пользовательского элемента управления?
- 19. Получить данные из пользовательского элемента управления с веб-страницы
- 20. Как получить значения элемента управления из пользовательского элемента управления в родительской форме
- 21. вызов перезаписываемой родительской функции из дочернего элемента в php
- 22. Вызов родительской функции с экземпляром из дочернего элемента в Reactjs
- 23. Вызов родительской функции
- 24. Вызов пользовательского элемента управления на странице aspx
- 25. JS - вызов родительской функции
- 26. Вызов элемента управления vb linkbutton (внутри пользовательского элемента управления) из javascript
- 27. User control - вызов элемента управления vb linkbutton (внутри пользовательского элемента управления) из javascript
- 28. вызов родительской функции OnChange
- 29. Доступ управления на странице с главной страницы из пользовательского элемента управления
- 30. Возврат из пользовательского элемента управления
[Это поможет] (http://stackoverflow.com/questions/623136/calling-a-method-in-parent-page-from-user-control?rq=1) – Damith