2015-07-17 4 views
1

ребята! Я должен установить некоторые значения полей автоматически через код в приложении win forms, которое содержит веб-браузер. Единственное, что не работает, это установить значение в multiselect. Я могу нажимать кнопки через код, устанавливать поля текстового поля и т. Д., Но список мультиселекций не работает (не может правильно установить значение). Прежде всего, это HTML-код в страницу для этого элемента:Выберите значение в multiselect через C# код

<select size="10" name="someName" multiple="multiple" onchange="javascript:setTimeout('someFunc')" id="elementId" showconfirmedonly="true" showextraitems="true"> 
    <option selected="selected" value="1">First opt</option> 
    <option value="2">Second opt</option> 
    <option value="3">Third opt</option> 
    <...other options...> 
</select> 

Я стараюсь, чтобы отменить выбор всех элементов первого таким образом:

webBrowser.Document.GetElementById(elementId).InnerHtml = 
webBrowser.Document.GetElementById(elementId).InnerHtml.Replace(
"<option selected=\"selected\"", "<option"); 

, а затем я пытаюсь выбрать (только один) искомый элемент (значение) таким образом:

webBrowser.Document.GetElementById(elementIWantToSelectId).Focus(); 
element.SetAttribute("selected", "selected"); 
webBrowser.Document.GetElementById(elementIWantToSelectId).InvokeMember("onchange"); 

Сначала я должен отменить выбранные параметры и выбрать нужный мне одну опцию. Если я попытаюсь только изменить html с помощью метода Replace, это не сработает, не только с установкой выбранного атрибута. Другие поля на странице изменяются при изменении любого значения (когда вызывается функция onchange func - я должен вызывать его при настройке значения в любом месте), и поэтому мне нужно вызвать функцию «onchange». Когда код исполняется, все опции исчезают, а поле многоселектора пустое, что я считаю действительно странным. Любые предложения, как решить мою проблему, будут оценены.

ответ

-1

Вы можете сделать это с помощью JQuery/JavaScript

Этого примера фрагмент кода может помочь вам.

$("select option").each(function(){ 
    if ($(this).text() == "B") 
    $(this).attr("selected","selected"); 
}); 
+0

Ну, мое приложение не является веб-формами, но выигрывает формы, и я был бы признателен, если бы вы рассказали мне, как выполнить javascript в приложении win forms, если это то, что вы имеете в виду. – Aleksandar

+0

@Aleksandar Кажется, что из вашего кода вы запрашивали веб-формы. В случае с Windows Forms код, который я дал, может не помочь вам, поскольку jQuery сильно зависит от DOM, и формы окон просто не созданы для него. Но если вы по-прежнему заинтересованы в поиске бит. Следуйте по ссылке ... http://stackoverflow.com/questions/8356990/javascript-jquery-in-windows-applications –