Как я могу получить внутри event_Click из экземпляра UserControl, который динамически создан из кнопки? - PullRequest
0 голосов
/ 03 июня 2011

У меня есть UserControl:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="wControl1.ascx.cs" Inherits="TestProjectSite.wControl1" %>
<asp:Button ID="Button12" runat="server" Text="Button12" onclick="Button12_Click" OnClientClick="true" />

C #:

        public string Name { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            Button12.Text = Name;

        }

        protected void Button12_Click(object sender, EventArgs e)
        {
            //...
            //The problem is here... it doesn't get inside...
        }

И Страница .ASPX:

<p>
    <asp:TextBox ID="TextBox1" Width="500" Height="34" runat="server" 
        Font-Size="22px"></asp:TextBox>
    <asp:Button ID="Button2" runat="server" Height="32" Text="חפש..." 
        OnClick="Button2_Click" Font-Size="20px" />
</p>
<P>
<asp:PlaceHolder ID="plhItems" runat="server" >
</P>

C #:

protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button2_Click(object sender, EventArgs e)
        {                 
            Func(TextBox1.Text);
        }

        public void Func(string text)
        {                      
                    wControl1 eControl = (wControl1)Page.LoadControl("wControl1.ascx");
                    eControl.Name = text;

                    plhItems.Controls.Add(eControl);
        }

Проблема в случае нажатия кнопки Button12_Click.

экземпляр элемента управления создается при нажатии кнопки (Button2). но когда я снова нажимаю кнопку UserControl (wControl), он не переходит к codeBehind eventClick .... только если я использую создание userControl в событии Page_Load, все будет в порядке ... но я хочу это из события Button2 ...

Что я могу сделать ??

СПАСИБО .. * * 1023

1 Ответ

1 голос
/ 03 июня 2011

Если я правильно понимаю, вы пытаетесь понять, почему ваше событие Button12_Click не вызывается после его создания во время нажатия кнопки Button2?

Причина заключается в том, что при повторном нажатии на кнопку Button12 кнопка больше не существует в иерархии элементов управления, поэтому обработчик событий не подключается и, следовательно, не срабатывает.

У вас есть несколько вариантов:

  1. Всегда иметь кнопку 12 на странице, но делать ее видимой только при нажатии кнопки 2.
  2. Добавьте Button12 как есть, но сохраните в состоянии просмотра или сеансе, что кнопка была создана, а затем убедитесь, что кнопка была создана заново во время события загрузки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...