是否有可能在asp.net中的下拉复选框文本区域中显示选定的项目?

本文关键字:区域 显示 项目 文本 有可能 asp net 是否 复选框 | 更新日期: 2023-09-27 18:07:12

在我的web应用程序中,我有dropdowncheckboxes控件,无论我选择了什么项目,我都需要在下拉文本字段中显示选定的项目,并用逗号分隔。

图片描述此处

我尝试了这个代码,但我没有得到结果:

。aspx:使用"DropDownCheckBoxes"控件

<%@ Register Namespace="Saplin.Controls" Assembly="DropDownCheckBoxes" TagPrefix="asp"%>
         <asp:DropDownCheckBoxes ID="dropdown1" runat="server"   
         UseSelectAllNode="true" UseButtons="true"   
         OnSelectedIndexChanged="dropdown1_SelectedIndexChanged"     
         AutoPostBack="true" CssClass="drpdwnstyle"><Style DropDownBoxBoxWidth="200"/>
         </asp:DropDownCheckBoxes>

cs

protected void dropdown1_SelectedIndexChanged(object sender, EventArgs e)
{
    List<String> checkedList = new List<string>();
    foreach (ListItem item in dropdown1.Items)
    {
        if (item.Selected)
        {
            checkedList.Add(item.Text);
        }
        dropdown1.DataTextField = String.Join(",", checkedList);
    }
}

我试了这么多,但我没有得到任何东西。有人能告诉我怎么做吗?

是否有可能在asp.net中的下拉复选框文本区域中显示选定的项目?

主要问题是DataTextField不是您想要设置的属性。此属性与数据源一起使用,以让数据绑定控件知道应该将哪个数据源的字段用作文本。value也有类似的字段。正确的属性应该是Texts.SelectBoxCaption,如果我没理解错的话。

在foreach中赋值this也没有意义,所以我把它移出了循环:

foreach (ListItem item in dropdown1.Items)
{
    if (item.Selected)
    {
        checkedList.Add(item.Text);
    }
}
dropdown1.Texts.SelectBoxCaption = String.Join(",", checkedList);

小改动,下一行:

dropdown1.Texts.SelectBoxCaption = String.Join(",", checkedList);

将被替换为:

dropdown1.Texts.SelectBoxCaption = String.Join(",", checkedList.ToArray());