加载带有值的下拉列表

时间:2013-03-26 19:55:23

标签: c# html .net entity-framework c#-4.0

我有一个下拉列表,可以动态获取数据,我想在页面加载时显示现有选择,并让用户从列表中选择一个,如果他们想要的话。

有一个网站,其中包含与网站相关的所有数据,我希望我的下拉列表能够从site.market获得现有价值。比如说newyork。下拉列表是动态创建的。  这是aspx

<tr>

  <td class="large"><asp:DropDownList ID="dropmarket" runat="server"  ></asp:DropDownList></td>

</tr>

在aspx.cs中

    protected void Page_Load(object sender, EventArgs e)
    {


        if (!Page.IsPostBack)
        {

            market();
            CellSiteUtility utility = new CellSiteUtility();
            var siteID = Guid.Parse(Request.QueryString["ID"].ToString());

            var site = utility.GetCellSiteByID(siteID);

            if (site != null)
            {

                txtsitename.Text = site.SiteName;
                txtaddress.Text = site.SiteAddress;
                txtzip.Text = site.SiteCityStateZip;
                dropmanager.SelectedValue = site.Manager;
                dropmarket.SelectedValue = site.Market;

            }
        }

    private void market()
    {
        CellSiteUtility utility = new CellSiteUtility();
        var siteID = Guid.Parse(Request.QueryString["ID"].ToString());
        var market = utility.getMarketsByCellsiteID(siteID);

        foreach (t_Market m in market)
        {
            dropmarket.Items.Add(new ListItem(m.MarketName.ToString(),
                m.MarketId.ToString()));
        }
    }

如何在页面加载时将site.market加载到dropmarket? 提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以在Page_Load上选择一个列表项:

ListItem selectedListItem = dropmarket.Items.FindByValue(site.Market);
if (selectedListItem != null)
{
    selectedListItem.Selected = true;
};

dropmarket.SelectedIndex = 0;
if (dropmarket.Items.Contains(site.Market))
   dropmarket.SelectedIndex = dropmarket.Items.IndexOf(entry);

编辑:

此示例假定site.Market是下拉列表中的值。如:

<option value="somevalue">SomeText</option>

如果site.Market是下拉列表中的文字,请使用:

ListItem selectedListItem = dropmarket.Items.FindByText(site.Market);

希望这有帮助!

的Vivek