简体   繁体   中英

multiple datasource to single dropdownlist

how do i set the multiple datasource to single dropdownlist?

 DrpPosition.ClearSelection();
        DrpPosition.DataSource = AdvertizeManager.GetList("", "", "", "");
        DrpPosition.DataTextField = "PNAME";
        DrpPosition.DataValueField = "ADID";
        DrpPosition.DataBind();
        DrpPosition.DataSource = CategoryManager.GetList("", "", "", "");
        DrpPosition.DataTextField = "NAME";
        DrpPosition.DataValueField = "CATID";
        DrpPosition.DataBind();

You can use LINQ to easily solve this:

        var advertizes = AdvertizeManager.GetList...
        var categories = CategoryManager.GetList....

        // create your annonymous type
        var customAdvertizes = from advertize in advertizes
                select new
                {
                    Value = advertize.ADID,
                    Text = advertize.PNAME
                };

        var finalQuery = customAdvertizes.Concat(
            from category in categories
            select new
            {
                Value = category.CATID,
                Text = category.NAME
            }
        );

And then just bind it to your DropDownList

    DrpPosition.DataSource = finalQuery;
    DrpPosition.DataTextField = "Text";
    DrpPosition.DataValueField = "Value";
    DrpPosition.DataBind();

It's impossible but you can merge your datasource before bind.

Or you can use

foreach(var item in yourDataSourceComplete)//yourDataSourceComplete = List1 + List2
{ 
  .....
  DrpPosition.Items.Add(Yourkey, YourValue);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM