【问题标题】:Problem with RadComboBox with ItemTemplate of asp:TextBox带有 asp:TextBox 的 ItemTemplate 的 RadComboBox 问题
【发布时间】:2011-11-17 01:58:11
【问题描述】:

我正在使用带有 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 个中输入了文本,我应该在遇到的第一个文本中返回“真”。当我调试并查看集合时 - 任何文本框中都没有存储任何内容,即使在 UI 中,也有两个带有数据。我一定是错过了什么……

【问题讨论】:

    标签: c# asp.net textbox itemtemplate radcombobox


    【解决方案1】:

    您的 for 循环正在检查 rcbi.Text,但这是您添加到组合框中的 RadComboBoxItems 的文本......这与您放置的 TextBox 中的文本不同ItemTemplate 的一部分。将您的 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;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2010-12-22
      • 2010-10-03
      相关资源
      最近更新 更多