TGn*_*nat 4 asp.net linq-to-objects drop-down-menu
我试图使用Linq查询在下拉列表控件中查找和设置所选值.
Dim qry = From i In ddlOutcome.Items _
Where i.Text.Contains(value)
Dim selectedItem As ListItem = qry.First
ddlOutcome.SelectedValue = selectedItem.Value
Run Code Online (Sandbox Code Playgroud)
即使文档说DropDownList.Items集合实现IEnumerable,我在Where子句中得到一个错误,Option Strict ON不允许后期绑定!
我可以用C#给你一个答案,我希望它可以帮助你.
使用DropDownlist方法最简单的方法,比linq查询更好:
DropDownList1.SelectedIndex =
DropDownList1.Items.IndexOf(DropDownList1.Items.FindByText("2"));
Run Code Online (Sandbox Code Playgroud)
如果你想要linq查询,它将是这样的:
var selected=from i in DropDownList1.Items.Cast<ListItem>()
where ((ListItem)i).Text.Contains("2") select i;
DropDownList1.SelectedValue = selected.ToList()[0].Text;
Run Code Online (Sandbox Code Playgroud)
有人想过:
foreach (ListItem li in drp.Items.Cast<ListItem>().Where(li => li.Value == ""))
{
li.Selected = true;
}
Run Code Online (Sandbox Code Playgroud)
感谢您的建议,它们都有助于我找到可行的解决方案。虽然我同意使用下拉列表本身的方法应该是可行的方法,但我对列表中项目的文本没有完全匹配,因此我需要另一种方法。
Dim qry = From i In ddlOutcome.Items.Cast(Of ListItem)() _
Where i.Text.Contains(value)
qry.First().Selected = True
Run Code Online (Sandbox Code Playgroud)
linq 查询似乎比我自己迭代列表更好,我在这个过程中学到了一些东西。
| 归档时间: |
|
| 查看次数: |
21923 次 |
| 最近记录: |