0
在asp:DataList
我有不同的行與一些文本,每個都有一個按鈕。在這個按鈕上,OnClientClick打開一個jQuery對話框,onclick調用後端並在顯示的對話框中填充一個updatepanel。從updatepanel中動態創建的控件獲取值
後端給我的值爲「AV」「TEXT」,這意味着我應該填充文本框,並在返回值時將其標識符稱爲「AV」。可以有無數個控件,並將它們添加到(動態創建的)表格中。
這工作正常。但在更新面板中,我有一個應該保存這些值和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#
感謝您的回答讓他們。我已經實現了這個,但是當我嘗試迭代pnlVars.Controls時,它是空的。 – Thomas 2013-02-21 11:26:07
即 - textproperty爲空。 – Thomas 2013-02-21 11:32:14
您應該重新綁定它以獲取這些值 – IamStalker 2013-02-21 11:36:40