Работа С Webbrowser В C#

AndreyS

Active member
15.10.2007
39
0
#1
Доброе время суток.

Нужна Ваша помощь, а именно у меня на страничке Webbrowser не отображаться весь код страницы.

Визуально на страницы есть таблица – когда копируешь код страницы, таблице в коде нету.

<table id="Table2" cellSpacing="0" cellPadding="2" width="100%" border="0">
<TR>
<TD>
<div id="ctl00_generalContent_UpdatePanel2">

<span id="ctl00_generalContent_LblMessage" class="notes" style="display:inline-block;width:360px;"></span>

//Здесь идет таблица которую нужно взять - визуально

</div>
</TD>
</TR>
</table>


Код таблицы видно только когда используешь FireBug (или Chrom).

<table id="Table2" cellspacing="0" cellpadding="2" width="100%" border="0">
<tbody><tr>
<td>
<div id="ctl00_generalContent_UpdatePanel2">
<span id="ctl00_generalContent_LblMessage" class="notes" style="display:inline-block;width:360px;"></span>
<div>
<table class="tbl_1" cellspacing="0" rules="all" pagerstyle-prevpagetext="&lt;" pagerstyle-nextpagetext="&gt;" border="1" id="ctl00_generalContent_DgQuotes" style="width:70%;border-collapse:collapse;">
<tbody><tr class="h1">
<th> …</th> // Строки таблицы
.
.
.

</tbody></table>
</div>
</div>


Как мне с помощью C# вытянуть таблицу <table class="tbl_1"…?
 

LuMee

Well-known member
02.05.2006
477
0
#2
Судя по всему, таблица добавляется на страницу динамически каким-то js-скриптом, потому-то в исходном коде страницы ее и нет. Чтобы до нее добраться, можно после открытия страницы достать все таблицы с помощью метода GetElementsByTagName, а потом методом перебора найти ту, у которой будет задан класс tbl_1 (не забывая, что элементу можно задать несколько классов).
 

AndreyS

Active member
15.10.2007
39
0
#3
Спасибо

Таблицу я уже определил с помощью GetElementsByTagName.

А как достать содержимое таблицы (tr, td)?

Метод только определяет таблицу, а мне нужно именно содержимое.
 

LuMee

Well-known member
02.05.2006
477
0
#4
Таблица, подтянутая с пощощью GetElementsByTagName, будет представлена объектом класса HtmlElement. Если приглядеться, то у этого класса обнаруживается ряд интересных свойств и методов, а именно:
  1. уже знакомый GetElementsByTagName
  2. Children - чтоб дочерние элементы достать
  3. InnerHtml/InnerText - чтобы вытянуть содержимое элемента
ну и всяко прочее. Берем таблицу, получаем ее строки, у каждой строки перебираем ячейки и тянем начинку.