绑定多个下拉菜单和文本字段

时间:2012-09-27 07:55:44

标签: asp.net drop-down-menu textbox

在我的项目中,我有2个下拉菜单1个列表框和1个文本框。我已经将数据库中的“PostalDropDown”和“CityDropDown”两个下拉列表绑定在一起并且工作正常,然后我将列表框也绑定到以前的下拉列表,它也可以正常工作!

我的问题在这里我仍然有最后一个文本框,我希望它显示名称,该名称也与下拉列表的结果绑定。 我无法想象它,因为文本框没有SelectValue属性,所以我不能像我用下拉列表或列表框那样分配它,就像我做的那样:

       if (!IsPostBack)
        {
            IEnumerable<Tuple<string, string, string, string>> data = GetData();
            DropDownListPostal.DataSource = data.Select(tuple => tuple.Item1).Distinct().ToList();

            DropDownListPostal.DataBind();
            DropDownListCity.DataValueField = "Item1";

            DropDownListCity.DataTextField = "Item2";
            DropDownListCity.DataSource = data;
            DropDownListCity.DataBind();

            ListBox1.DataValueField = "item1";
            ListBox1.DataTextField = "Item4";
            ListBox1.DataSource = data;
            ListBox1.DataBind();

        }              
    }

然后我在第一个下拉列表中的selectedindexchanged上查看结果:

     protected void DropDownListPostal_SelectedIndexChanged1(object sender, EventArgs e)
        {
        //DropDownListPostal.ClearSelection();

        ListBox1.ClearSelection();
        DropDownListCity.ClearSelection();           
        var postal = DropDownListPostal.SelectedValue;
        var listItem = DropDownListCity.Items.FindByValue(postal);
        var street = ListBox1.Items.FindByValue(postal);


        listItem.Selected = true;            
        street.Selected = true;

有人可以告诉我如何在文本框中添加其余的数据库结果吗? 如果你们都想要,我可以把整个代码放到页面上。

干杯

1 个答案:

答案 0 :(得分:0)

如果你真的想要显示一个非常奇怪的文本框中的所有项目,你可以像这样显示它们的逗号

TextBoxId.Text = String.Join(",", data.Select(op => op.Name));

其中Name是包含要在文本框中显示的属性的属性

修改

如果要显示列表框的选定项目,请循环其项目并检查项目是否已选中,然后将其显示在文本框中。

foreach (ListItem item in ListBox1.Items)
            {
                if (item.Selected)
                {
                    txtval.Text += " " + item.Text +"/"+ dropdowncity.SelectedItem.Text +"/"+ dropdownpostal.SelectedItem.Text;
                }
            }