2011-01-28 3 views
2

У меня есть веб-приложение aspx, в котором есть одна страница aspx и 1 пользовательский элемент управления для пользователя. Я добавил 4 экземпляра пользовательского элемента управления на странице aspx. В пользовательском элементе есть кнопка удаления, которая используется для удаления элемента управления с страницы aspx. Если я нажму кнопку «Удалить» пользовательского элемента управления, как я могу найти, какую кнопку удаления пользовательского элемента управления нажата на странице aspx. Пожалуйста, дайте мне знать решение ...Как найти идентификатор пользователя в aspx странице

Заранее спасибо :)

ответ

1

Если вы пытаетесь сделать это на стороне клиента, вы можете ссылаться на идентификатор так:

var removeButtonId = "<%=removeButton.ClientID %>"; 

Если вы подключены до события нажатия кнопки мыши вы можете получить его от параметра sender так:

void removeButton_Click(object sender, EventArgs e) 
{ 
    Button removeButton = sender as Button; 
    string id = removeButton.ID; 
} 
+0

Я делаю это в codebehind и более, у меня есть 4 экземпляра одного и того же пользовательского элемента управления на странице aspx. – asd

+0

обновил мой ответ – hunter

+0

Id возвращает идентификатор кнопки, однако мне нужно получить идентификатор экземпляра usercontrol - (нужно знать, на какую кнопку щелкнуть пользовательский элемент управления с главной страницы) – asd

0

n простой способ: пользовательский элемент управления реализует событие RemoveClicked. Затем, когда нажата кнопка удаления, в обработчике событий нажатия кнопки, запустите событие RemoveClicked. Страница может знать, от какого пользователя управляет запрос на удаление. Вы даже можете передать кнопку через события args, если хотите. Страница должна была бы присоединяться к этому событию для всех 4 пользовательских элементов управления, FYI.

Этот совет предполагает, что вы ищете серверное решение, а не клиентское.

HTH.

6

Я бы добавил событие в элемент управления пользователя и зафиксировал это событие в коде позади. Вот пример:

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); 
    } 
} 

Конечный результат:

Приведенный выше пример производит следующий веб-страницу. Когда кнопка нажата удалить, что контроль исчезает:

Final product

удачи !!

+0

Очень тщательный ответ –

Смежные вопросы