我正在使用带有ItemTemplate的RadComboBox,其中包含用户可以输入信息的50个TextBox控件。我动态添加了50个TextBox控件(见下文)。当信息输入文本框时,似乎一切都按预期工作。但是,当我迭代TextBoxes的集合时,数据不存在。这是我的代码:
aspx页面:
<telerik:RadComboBox ID="ddlListItemsQ1" runat="server" Width="200px" ShowDropDownOnTextboxClick="true" EnableEmbeddedSkins="false" Skin="Classic" TabIndex="2" ZIndex="100" disabled="true" OnClientDropDownOpening="OnDropdownListItemsOpening">
<ItemTemplate>
<asp:TextBox ID="txtBoxQ1" runat="server" Width="160"/>
</ItemTemplate>
</telerik:RadComboBox>
加载文本框:
private void LoadDropdownListItems()
{
int itemCount = 0;
while (itemCount < 50)
{
ddlListItemsQ1.Items.Add(new RadComboBoxItem());
itemCount++;
}
}
检查收集:
RadComboBox ddlListItems = (RadComboBox)FindControl("ddlListItemsQ1");
IList<RadComboBoxItem> iList = ddlListItems.Items;
foreach (RadComboBoxItem rcbi in iList)
{
if (rcbi.Text.Length > 0)
return true;
}
任何文本框中都没有任何内容。例如,如果我在50中的2中输入了文本,我应该在它遇到的第一个上返回“true”。当我调试并查看集合时 - 在任何文本框中都没有存储任何内容,即使在UI中,也有两个包含数据。我一定错过了什么......
答案 0 :(得分:0)
您的for循环正在检查rcbi.Text
,但这是您添加到组合框的RadComboBoxItem
的文本....这与{{1}中的文本不同你作为TextBox
的一部分放置的。将你的for循环改为this,它应该可以工作:
ItemTemplate