我以下面的方式绑定数据库中的下拉列表
-- Select an item --
Bicycles
Matresses
Games
我正在选择第一个项目作为默认值..但是如果客户端是现有客户端并且之前保存了这个,那么表格会说他们选择了例如“床垫”,我遇到的问题是绑定它和当他们的客户回到这个页面时,选择“床垫”。当我做
时 ddlmyItems.SelectedIndex = ddlmyItems.Items.IndexOf
(ddlmyItems.Items.FindByText("Matresses"));
选择正确的索引,但下拉列表如下所示
-- Select an item --
Bicycles
-- Select an item -- //this is supposed to be Matresses
Games
我也尝试将文本更改回原来的名称,但它不起作用
ddlmyItems.SelectedItem.Text = "Matresses";
知道为什么它没有在第三项上找到正确的“文字”?或者我该怎么做?
谢谢
=============================================== ===========
private void BindShippingDropDown(TList<StoreItems> storeItemsList, string countryCode)
{
ddlmyItems.Items.Clear();
ListItem liDefault = new ListItem("Select an Item", "0");
ddlmyItems.Items.Add(liDefault);
DataSet ds = storeItemsList.ToDataSet(false);
DataView dv = new DataView(ds.Tables[0]);
dv.RowFilter = "DestinationCountryCode = '" + countryCode + "' or DestinationCountryCode is null";
if (dv.ToTable().Rows.Count > 0)
{
foreach (DataRow dr in dv.ToTable().Rows)
{
string description = dr["Description"].ToString();
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("®");
description = regex.Replace(description, "®");
ListItem li = new ListItem(description, dr["ItemID"].ToString());
ddlmyItem.Items.Add(li);
}
ddlmyItems.SelectedIndex = 0;
}
}
答案 0 :(得分:1)
如果我不得不对此进行抨击,我认为你的副本“选择一个项目”是由AppendDataBoundItems="true"
我可能会做的是挂钩下拉的OnDataBound()事件,并在索引0处插入“选择项目”文本。
然后,如果你想预先选择“床垫”,可能是这样的吗?
var item = dropDownList.Items.FindByText(yourValue);
if(item != null)
{
dropDownList.ClearSelection();
item.Selected = true;
}
这里可能还有其他东西(更新面板等)可能会让我的建议失效。如果这不起作用;发布DropDown的代码,以及处理数据绑定和选择逻辑的任何代码。
答案 1 :(得分:0)
您可以使用以下方法
来完成此操作ddlmyItems.Items.FindByText(“Matresses”)。Selected = true;
如果你使用这种方式意味着即使下拉列表中的值不可用,也不会产生异常。
答案 2 :(得分:0)
尝试
comboBox1.Text = "Matresses";
How do I set the selected item in a comboBox to match my string using C#?