更改下拉列表的值

时间:2013-02-27 02:37:46

标签: c# asp.net html

我正在尝试使用click事件处理程序中的以下代码更改下拉列表的值。按下按钮时实际上没有任何变化。我错过了什么?这是正确的方法吗?

HtmlDocument document = webBrowser1.Document;
HtmlElement salutation = document.GetElementById("status");
salutation.SetAttribute("value", "Mr");

这是html

<select id="status">
<option selected="selected" value="">Select</option>
<option value="Mr">Mr.</option>
<option value="Mrs">Mrs.</option>
</select>

2 个答案:

答案 0 :(得分:1)

你可以尝试这个(基于你的代码)

      HtmlDocument document = webBrowser1.Document;
        HtmlElement salutation = document.GetElementById("status");

        var option = salutation.Children.Cast<HtmlElement>().First(x => x.GetAttribute("value").Equals("Mr"));
        option.SetAttribute("selected", "selected");

答案 1 :(得分:0)

您是否选择了<select>代码?如果是这样,请不要使用它。选择<option>,就像这样:

<select>
  <option value="volvo">Volvo</option>
  <option value="saab" selected="selected">Saab</option>
  <option value="vw">VW</option>
  <option value="audi">Audi</option>
</select>

要查看其实际效果:请参阅此link

使用scartag中的一些代码,这是怎么回事:

HtmlElement salutation = document.GetElementById("status");

var option = salutation.Children.Cast<HtmlElement>().
             Where(x => x.GetAttribute("selected").Equals("selected")).First();

if (option != null) option.SetAttribute("value","Mr,");