在我的网络应用程序中,我有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);
}
}
我尝试了很多,但我没有得到任何东西。 任何人都可以告诉我如何做到这一点。
答案 0 :(得分:2)
主要问题是DataTextField不是您要设置的属性。该属性与数据源一起使用,以使数据绑定控件知道哪个数据源的字段应该用作文本。有一个类似的价值领域。如果我理解你的意图,那么正确使用的属性是struct __attribute__((__packed__)) mystructure2
{
char a;
int b;
char c;
};
。
同样没有必要在foreach中分配这个,所以我把它移出了循环:
Texts.SelectBoxCaption
答案 1 :(得分:0)
小校正,以下行:
dropdown1.Texts.SelectBoxCaption = String.Join(",", checkedList);
将替换为:
dropdown1.Texts.SelectBoxCaption = String.Join(",", checkedList.ToArray());