C# 无法获取asp.net中动态添加的用户控件的值
这是我的用户控制C# 无法获取asp.net中动态添加的用户控件的值,c#,asp.net,user-controls,C#,Asp.net,User Controls,这是我的用户控制 <div class=" row-fluid"> <div class="span4" style="overflow: hidden;"> <asp:DropDownList ID="ddlAccountName" runat="server" DataSourceID="ChartOfAccountsforVouchers" DataTextField="AccountName" DataValueField="Char
<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>
但是代码显示0计数。它甚至没有进入循环。如何获取动态添加的用户控件的值
谢谢试试这个
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;
}
}
更新:
您应该阅读一些关于动态控件和状态管理的文章
问题是它甚至没有进入循环
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;
}
}
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;
}
}