C# 带有asp:TextBox的ItemTemplate的RadComboBox出现问题
我使用一个RadComboBox和一个ItemTemplate,其中包含50个TextBox控件,用户可以在其中输入信息。我动态添加了50个TextBox控件(见下文)。在文本框中输入信息时,似乎一切都按预期进行。但是,当我迭代文本框集合时,数据并不存在。这是我的密码: aspx页面:C# 带有asp:TextBox的ItemTemplate的RadComboBox出现问题,c#,asp.net,textbox,itemtemplate,radcombobox,C#,Asp.net,Textbox,Itemtemplate,Radcombobox,我使用一个RadComboBox和一个ItemTemplate,其中包含50个TextBox控件,用户可以在其中输入信息。我动态添加了50个TextBox控件(见下文)。在文本框中输入信息时,似乎一切都按预期进行。但是,当我迭代文本框集合时,数据并不存在。这是我的密码: aspx页面: <telerik:RadComboBox ID="ddlListItemsQ1" runat="server" Width="200px" ShowDropDownOnTextboxClick="true"
<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++;
}
}
private void LoadDropdownListItems()
{
int itemCount=0;
而(itemCount<50)
{
ddlListItemsQ1.Items.Add(新的RadComboxItem());
itemCount++;
}
}
检查集合:
RadComboBox ddlListItems = (RadComboBox)FindControl("ddlListItemsQ1");
IList<RadComboBoxItem> iList = ddlListItems.Items;
foreach (RadComboBoxItem rcbi in iList)
{
if (rcbi.Text.Length > 0)
return true;
}
RadComboBox ddlListItems=(RadComboBox)FindControl(“ddlListItemsQ1”);
IList IList=ddlListItems.Items;
foreach(ILST中的项目rcbi)
{
如果(rcbi.Text.Length>0)
返回true;
}
任何文本框中都没有任何内容。例如,如果我在50个文本中的2个中输入了文本,我应该在它遇到的第一个文本中返回“true”。当我调试并查看集合时,任何文本框中都没有存储任何内容,即使在UI中,有两个文本框包含数据。我一定错过了什么 for循环正在检查
rcbi.Text
,但这是添加到组合框中的radcomboxItem
s的文本……这与作为ItemTemplate
一部分放置的TextBox
中的文本不同。将for循环更改为此,它应该可以工作:
IList<RadComboBoxItem> iList = ddlListItems.Items;
foreach (RadComboBoxItem rcbi in iList)
{
//Find the inner textbox placed by the ItemTemplate
var innerTextBox = (TextBox)rcbi.FindControl("txtBoxQ1");
/Check the textbox's Text property
if (innerTextBox.Text.Length > 0)
return true;
}
IList-IList=ddlListItems.Items;
foreach(ILST中的项目rcbi)
{
//查找ItemTemplate放置的内部文本框
var innerTextBox=(TextBox)rcbi.FindControl(“txtBoxQ1”);
/选中textbox的Text属性
如果(innerTextBox.Text.Length>0)
返回true;
}