【问题标题】:loading dropdown with value加载带有值的下拉列表
【发布时间】:2013-03-26 19:55:23
【问题描述】:

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

有一个网站包含与网站相关的所有数据,我希望我的下拉列表从 site.market 获取现有价值,比如说纽约。下拉列表是动态创建的。 这是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 中? 提前致谢。

【问题讨论】:

  • 这个问题应该被否决。
  • 这是一个非常令人困惑的问题。你能清理一下只显示相关代码,并解释得更好吗?
  • 在 market() 方法中,您使用 ListItems 填充 dropmarket 并将其 Value 属性设置为 MarketID。然后在设置 dropmarket 的 SelectedValue 时,将其设置为 site.Market。您不应该也将其设置为 site.Market.MarketID 吗?
  • site .market 来自一个存储的 proc 结果,它为我提供了来自 db 的当前市场名称

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


【解决方案1】:

您可以在 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 以下工作 ListItem selectedListItem = dropmarket.Items.FindByText(site.Market); if (selectedListItem != null) { selectedListItem.Selected = true; };
  • 很好,它有帮助!我也编辑了答案以添加您的场景:)
猜你喜欢
  • 2015-04-20
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-06
  • 1970-01-01
相关资源
最近更新 更多