[英]Failed to get the values of dynamically added user controls in asp.net
這是在我的用戶控件中
<div class=" row-fluid">
<div class="span4" style="overflow: hidden;">
<asp:DropDownList ID="ddlAccountName" runat="server" DataSourceID="ChartOfAccountsforVouchers"
DataTextField="AccountName" DataValueField="ChartOfAccID">
</asp:DropDownList>
<%-- <asp:EntityDataSource ID="ChartOfAccountsforVouchers" runat="server" ConnectionString="name=CnFV1MainModelEntities"
DefaultContainerName="CnFV1MainModelEntities" EnableFlattening="False" EntitySetName="ChartOfAccounts"
Select="it.[ChartOfAccID], it.[AccountName]">
</asp:EntityDataSource>--%>
</div>
<div class="span4">
<asp:TextBox ID="txtValue" MaxLength="10" CssClass="numeric input-block-level" runat="server"></asp:TextBox>
</div>
<div class="span4">
<asp:TextBox ID="txtValueB" MaxLength="10" CssClass="numeric input-block-level" runat="server"></asp:TextBox>
</div>
這就是我將此控件添加到占位符的方式
int count = Convert.ToInt32(Session["AddedRows"]);
++count;
for (int i = 0; i < count; i++)
{
// Add the usercontrol dynamically
Control webUserControl = (Control)Page.LoadControl("ctrlEntryRows.ascx");
placeRows.Controls.Add(webUserControl);
}
Session["AddedRows"] = count.ToString();
這就是單擊按鈕時我試圖獲取控件的方式
if (placeRows.Controls.Count > 0)
{
foreach (Control ctrl in placeRows.Controls)
{
TextBox txt = (TextBox)placeRows.FindControl("txtValue");
TextBox txtB = (TextBox)placeRows.FindControl("txtValueB");
string message = txt.Text + txtB.Text;
}
}
但是代碼顯示為0 count.IT甚至沒有進入循環。 如何獲得動態添加的用戶控件的值?
謝謝
嘗試這個
if (placeRows.Controls.Count > 0)
{
foreach (Control ctrl in placeRows.Controls)
{
TextBox txt = (TextBox)ctrl.FindControl("txtValue");
TextBox txtB = (TextBox)ctrl.FindControl("txtValueB");
string message = txt.Text + txtB.Text;
}
}
更新:
您應該閱讀諸如此類的有關動態控件和狀態管理的文章。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.