簡體   English   中英

從updatepanel中動態創建的控件中獲取價值

[英]Get value from dynamically created controls in updatepanel

在一個asp:DataList我有不同的行,其中包含一些文本,每個行都有一個按鈕。 在此按鈕上,OnClientClick打開一個jquery對話框,onclick調用后端,並在顯示的對話框內填充一個updatepanel。

后端為我提供了諸如“ AV”,“ TEXT”之類的值,這意味着我應該填充一個文本框,並且在返回這些值時,其標識符稱為“ AV”。 可以有無數個控件,我將它們添加到(動態創建的)表中。

這很好。 但是在updatepanel中,我有一個按鈕可以保存這些值和ID,但是找不到它們! 我嘗試將表添加到Session ,以便讓我找到控件,但其中的值不存在。 如果未添加到會話中,則控件不存在。

<div id="dialog-confirm" style="display: none;">
<div id='dialog'>
    <asp:UpdatePanel ID="upEditUpdatePanel" UpdateMode="Conditional" runat="server">
        <ContentTemplate>
            <asp:Panel ID="pnlVars" runat="server">
            </asp:Panel>
            <asp:Button ID="btnOK" runat="server" Text="OK" OnClientClick="StartLoader();" OnClick="btnOK_Click" align="center" />
        </ContentTemplate>
        <Triggers>
            <asp:PostBackTrigger ControlID="btnOK" />
        </Triggers>
    </asp:UpdatePanel>
</div>

控件添加如下:

Dim pnlVars As Panel = upEditUpdatePanel.FindControl("pnlVars")
...
controls = GetControls()
Swtich controls.type
Case "TEXT"
Dim txtVar As New TextBox
txtVar.ID = "AV"
tblCellVal.Controls.Add(txtVar)
tblRow.Cells.Add(tblCellVal)
tblVars.Controls.Add(tblRow)
pnlVars.Controls.Add(tblVars)
....
upEditUpdatePanel.Update()

我試圖獲取值和迭代控件的方式:

    Protected Sub btnOK_Click(ByVal sender As Object, _
                      ByVal e As EventArgs)
    For Each c As Control In pnlVars.Controls
        If TypeOf c Is Control Then

            If TypeOf c Is TextBox Then
                Dim ctr As TextBox = DirectCast(c, TextBox)
            End If

        End If
        If c.Controls.Count > 0 Then
            GetUserControls(c.Controls)
        End If
    Next
End Sub

在vb.net或C#中接受答案

您應該了解asp.net Page Cycle

http://msdn.microsoft.com/zh-cn/library/ms178472%28v=vs.100%29.aspx

要獲取已經動態創建的值,您必須從中獲取它們

protected void Page_PreRender(object sender, EventArgs e) {
    // get values from your dynamically created elements
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM