我正在尝试将DropDownList控件绑定到各种数据存储。在我的例子中,数据存储是数组文件值和项目文本。
这是我的HTML的简短示例:
<asp:DropDownList ID="DropDownListDealCategory"
runat="server"
Height="25px"
Width="150px"
AutoPostBack="true"
OnSelectedIndexChanged="DropDownListDealCategory_SelectedIndexChanged">
<asp:ListItem Selected="True" Value="0">-- Select Category --</asp:ListItem>
<asp:ListItem Value="10">Electronics</asp:ListItem>
<asp:ListItem Value="22">Computer</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownSubCategories"
runat="server"
Visible="false"
Height="25px"
Width="170px"
AutoPostBack="true"
OnSelectedIndexChanged="DropDownSubCategories_SelectedIndexChanged">
</asp:DropDownList>
后面的代码(C#)将从两个数组动态生成DropDownList控件。
protected void DropDownDealCategory_SelectedIndexChanged(object sender, EventArgs e)
{
string[] Electronics = new[] { " Select Subcategory ", "Cameras and Photography", "Home Audio"};
string[] Computer = new[] {" Select Subcategory " "Laptops", "Monitors"};
if (DropDownListCategory.SelectedItem.Text == "Electronics")
{
DropDownSubCategories.DataSource = Electronics;
}
else if (DropDownListDealCategory.SelectedItem.Text == "Computer")
{
DropDownSubCategories.DataSource = Computer;
}
DropDownSubCategories.DataBind();
DropDownSubCategories.Visible = DropDownListCategory.SelectedItem.Text != " Select Category ";
所以,直到这里一切都很好,除了我需要 DropDownSubCategories DropDownList控件中每个项目的categoryId,否则我将无法从外部数据库中检索任何产品,因为我需要名称 + categoryid 才能显示产品说明。
我的问题是,有没有办法将两个值(一个作为Value,另一个作为Item.Text)添加到数组中,所以我可以将它们都绑定到DropDownList控件?
谢谢你,任何帮助甚至是另一种建议都会受到赞赏。
答案 0 :(得分:1)
尝试使用ListItem
s。应该看起来像下面这样。
var Electronics = new[]{
new ListItem{ Value = "0", Text = " Select Subcategory "},
new ListItem{ Value = "1", Text = "Cameras and Photography"},
new ListItem{ Value = "2", Text = "Home Audio"},
};
您可能需要添加使用。
using System.Web.UI.WebControls;
编辑:
尝试以这种方式添加它们:
DropDownSubCategories.Items.Clear();
DropDownSubCategories.Items.AddRange(Electronics);
或者如果AddRange()
不是函数,则单独:
DropDownSubCategories.Items.Add(new ListItem{ Value = "2", Text = "Home Audio"});
等等。
答案 1 :(得分:0)
Dictionary类用于存储键/值对。
Dictionary<int, string> Electronics = new Dictionary<int, string>() {
{0, "Select Subcatagory" },
{1, "Cameras and Photography" },
{2, "Home Audio" }
};