Доступ к значению динамически добавляемого элемента управления внутри панели обновления - PullRequest
0 голосов
/ 13 ноября 2011

У меня есть страница, которая содержит панель обновлений, и внутри нее есть placeHolder, который будет заполнен текстовым полем при нажатии кнопки 1.

Теперь мне нужно получить доступ к значению, введенному в текстовом поле, когда пользователь нажимает кнопку Button2. Я изо всех сил пытаюсь найти простое решение этой проблемы.

Пожалуйста, найдите фрагмент кода ниже.

<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:PlaceHolder ID="wplcHolder" runat="server"></asp:PlaceHolder>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    <asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" />
</div>
</form>

protected void Button1_Click(object sender, EventArgs e)
{
    TextBox _txt = new TextBox();
    wplcHolder.Controls.Add(_txt);
}

Спасибо, Чандр

1 Ответ

0 голосов
/ 13 ноября 2011

Я предлагаю вам дать идентификатор текстовому полю перед добавлением его в качестве заполнителя, например, скажем, вы даете: yourTextBoxID

после этого, теоретически вы можете сделать это из вашего Button2_Clickсобытие:

var myTextBox = (wplcHolder.FindControl("yourTextBoxID") as TextBox);

это будет работать, но только если вы все время добавляете элемент управления yourTextBoxID в Page_Init, потому что если вы делаете это только из Button1_Click, когда запускается новый жизненный цикл страницы, нажавна Button2 скорее всего, текстового поля там не будет.

все для проверки и проверки, конечно; -)

...