我正在开发一个 Asp.NET 项目,我正在尝试使用文本属性设置下拉列表的选定值。例如,我在下拉列表中有一个带有文本的项目test
。我可以以编程方式将其设置selecteditem
为Text
?我正在使用以下代码,但无法正常工作。
protected void Page_Load(object sender, EventArgs e)
{
string t = "test";
drpFunction.Text = t;
}
但不工作。有什么建议么 ?
string t = "test";
drpFunction.ClearSelection();
drpFunction.Items.FindByText(t).Selected = true;
设置 itm.Selected = true; 仅当您首先使用 drp.ClearSelection() 时才有效。我更喜欢以下内容:
drpFunction.SelectedValue = drpFunction.Items.FindByText(t).Value;
drpFunction.SelectedValue = drpFunction.Items.FindByText(t).Value;
这是选择文本的更好方法。通过ioden的方式它会显示一个错误
“下拉列表中不能选择多个项目”
此链接可能对您有所帮助
public static void SelectText(this DropDownList bob, string text)
{
try
{
if (bob.SelectedIndex >= 0)
bob.Items[bob.SelectedIndex].Selected = false;
bob.Items.FindByText(text).Selected = true;
}
catch
{
throw new GenericDropDownListException("value", text);
}
}
我认为SelectedValue属性应该可以满足您的需要。
protected void Page_Load(object sender, EventArgs e)
{
string t = "test";
drpFunction.SelectedValue = t;
}
SelectedValue 属性可用于通过设置项目的值来选择列表控件中的项目。但是,如果所选值与下拉列表中的值列表不匹配,则在回发期间将引发异常。
用这个...
protected void Page_Load(object sender, EventArgs e)
{
string t = "test";
drpFunction.SelectedItem.Text = t;
}
或者
protected void Page_Load(object sender, EventArgs e)
{
string t = "test";
drpFunction.SelectedItem.Value = t;
}
这是正确的方法......
这适用于网络
ListItem li=new ListItem();
li.Text="Stringxyz";
li.Value="Stringxyz"; // Create object of item first and find its index.
DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(li);
这也很好用。