如何通过显示文本在ASP.NET下拉列表中设置所选项?
我有一个ASP.NET下拉列表,我通过数据绑定填充。 我有与我想要选择的列表项目的显示文本相匹配的文本。 我显然不能使用SelectedText(仅限getter)并且我不知道索引,所以我不能使用SelectedIndex。 我目前正在通过遍历整个列表来选择项目,如下所示:
ASP:
码:
ddItems.DataSource = myItemCollection; ddItems.DataTextField = "Name"; ddItems.DataValueField = "Id"; foreach (ListItem item in ddItems.Items) { if (item.Text == textToSelect) { item.Selected = true; } }
有没有办法在不迭代所有项目的情况下执行此操作?
你可以试试:
ddItems.Items.FindByText("Hello, World!").Selected = true;
要么:
ddItems.SelectedValue = ddItems.Items.FindByText("Hello, World!").Value;
请注意,如果您不确定某个项目是否与您的显示文本匹配,则可能需要检查FindByText()
的结果FindByText()
为null
。
请注意,我在多选列表上使用第一种方法,例如CheckBoxList
以添加其他选择。 我使用第二种方法来覆盖所有选择。
使用ListItemCollection
类的FindByText
方法,例如:
ListItem itemToSelect = ddlItems.Items.FindByText("some text to match"); if(itemToSelect != null) { itemToSelect.Selected = true; }
如果必须为多个下拉案例选择下拉选定项目文本,请使用此方法。
// Call Method SelectDropdownItemByText(ddlDropdown.Items.FindByText("test")); // Define method public void SelectDropdownItemByText(ListItem item) { if (item != null) { item.Selected = true; } }
工作正常..
drplistcountry.SelectedIndex = drplistcountry.Items.IndexOf(drplistcountry.Items.FindByText("--Select--"));
要么
drplistcountry.ClearSelection(); drplistcountry.SelectedIndex = drplistcountry.Items.IndexOf(drplistcountry.Items.FindByText("--Select--"));
- 允许用户传递表名和列名,同时防止SQL注入
- 使用SQL LIKE运算符的LINQ to Entities
- 通过DotNetOpenAuth对FreshBooks进行身份validation
- Session.Clear(),Session.Abandon(),Session.RemoveAll()的MVC优化?
- 如何在ASP.NET中使用带有图标和格式的JQuery Datepicker
- Resharper:无法在VS2010 SP1中解析符号’Eval’
- 找不到命名空间’System.Data.SqlServerCe’
- AutoCompleteExtender正在触发,webservice正在返回结果,但这些结果未显示
- 设置ViewStateUserKey会给我一个“viewstate MAC failed的validation”错误