динамические текстовые поля не работают в панели обновлений

Я создаю динамические текстовые поля при нажатии кнопки, а затем показываю значения при нажатии другой кнопки. Он отлично работает, пока я не использую ajax updatepanel. В этом случае значения не отображаются, когда я нажимаю вторую кнопку. Мой код aspx:

разметка aspx:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <div id="divRT" runat="server">
        </div>
           <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnAccessValues" EventName="Click" />
    <asp:AsyncPostBackTrigger ControlID="lbnAddNew" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>
<div>
    <asp:Button ID="btnAccessValues" Text="save" runat="Server" OnClick="btnAccessValues_Click" />
    <br />
    <br />       
</div>

Код для отображения значений.

 Protected Sub btnAccessValues_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnAccessValues.Click
        If ViewState(strVS_DynamicIds) IsNot Nothing Then
            Dim lstDynId As List(Of String) = DirectCast(ViewState(strVS_DynamicIds), List(Of String))
            For Each strId As String In lstDynId
                Dim tbx As TextBox = DirectCast(divRT.FindControl(strId), TextBox)

                Response.Write(tbx.Text)
                Label1.Text = tbx.Text
            Next
        End If
    End Sub

Я использую эту статью в качестве ссылки:

http://www.c-sharpcorner.com/uploadfile/abhijeetsinghai/creating-textboxes-dynamically-at-runtime/

Пожалуйста, предложите решение.

С уважением, Асиф Хамид


person DotnetSparrow    schedule 31.03.2012    source источник


Ответы (2)


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

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <div id="divRT" runat="server">
        </div>
           <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </ContentTemplate>        
</asp:UpdatePanel>
<div>
    <asp:Button ID="btnAccessValues" Text="save" runat="Server" OnClick="btnAccessValues_Click" />
    <br />
    <br />       
</div>
person Fraz Sundal    schedule 31.03.2012
comment
Привет, я удалил триггеры, но та же ошибка. Значения в текстовых полях недоступны после обратной передачи - person DotnetSparrow; 31.03.2012
comment
Покажи мне свой полный код. Я уже реализовал этот код блога и отлично работает с панелью обновлений. - person Fraz Sundal; 31.03.2012

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

person Tami    schedule 31.03.2012
comment
Я создаю эти текстовые поля для выбранного индекса списка. Я передаю selectedindex в качестве параметра функции, которая затем вызывает хранимую процедуру БД. Если я попытаюсь вызвать этот метод в page_init, выбранный индекс всегда будет пустым/ - person DotnetSparrow; 31.03.2012
comment
Я хотел сказать, что вам нужно было переопределить их, прежде чем вы получите к ним доступ. В вашем случае, я думаю, вы можете воспользоваться помощью ViewState при загрузке страницы, чтобы переопределить свои текстовые поля. понял мою точку зрения? то есть сохраните ваш selectedindex в ViewState и используйте его на Page_Load.. - person Tami; 01.04.2012