Я бы добавил событие в элемент управления пользователя и зафиксировал это событие в коде позади. Вот пример:
Default.aspx веб-формы:
Зарегистрируйте пользовательский элемент управления:
<%@ Register TagPrefix="so" TagName="UserControl" Src="~/WebUserControl.ascx" %>
4 экземпляры выше контроля. Обратите внимание, что мы обработки события OnRemoving определено ниже:
<so:UserControl ID="UserControl1" runat="server" Title="Control 1" OnRemoving="UserControl1_Removing" />
<so:UserControl ID="UserControl2" runat="server" Title="Control 2" OnRemoving="UserControl2_Removing" />
<so:UserControl ID="UserControl3" runat="server" Title="Control 3" OnRemoving="UserControl3_Removing" />
<so:UserControl ID="UserControl4" runat="server" Title="Control 4" OnRemoving="UserControl4_Removing" />
по умолчанию.ASPX Код За:
В коде позади, я обрабатывать каждый из OnRemoving событий элемента управления:
protected void UserControl1_Removing(object sender, EventArgs e)
{
WebUserControl ctrl = (WebUserControl)sender;
ctrl.Visible = false;
}
protected void UserControl2_Removing(object sender, EventArgs e)
{
WebUserControl ctrl = (WebUserControl)sender;
ctrl.Visible = false;
}
protected void UserControl3_Removing(object sender, EventArgs e)
{
WebUserControl ctrl = (WebUserControl)sender;
ctrl.Visible = false;
}
protected void UserControl4_Removing(object sender, EventArgs e)
{
WebUserControl ctrl = (WebUserControl)sender;
ctrl.Visible = false;
}
пользователя Web Control Форма:
Веб пользовательский элемент управления включает в себя "удалить" кнопка:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
<fieldset>
<legend><%=Title %></legend>
<asp:Button ID="Button_Remove" runat="server" Text="Remove" OnClick="Button_Remove_Click" />
</fieldset>
кода пользователя Контроль За:
Наконец, вот как код события для пользовательского элемента управления:
public partial class WebUserControl : System.Web.UI.UserControl
{
// the event delegates may listen for
public event EventHandler Removing;
public string Title { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button_Remove_Click(object sender, EventArgs e)
{
// raise the event for attached delegates
if (Removing != null)
Removing(this, EventArgs.Empty);
}
}
Конечный результат:
Приведенный выше пример производит следующий веб-страницу. Когда кнопка нажата удалить, что контроль исчезает:
удачи !!
Я делаю это в codebehind и более, у меня есть 4 экземпляра одного и того же пользовательского элемента управления на странице aspx. – asd
обновил мой ответ – hunter
Id возвращает идентификатор кнопки, однако мне нужно получить идентификатор экземпляра usercontrol - (нужно знать, на какую кнопку щелкнуть пользовательский элемент управления с главной страницы) – asd