DOM Парсинг - PullRequest
       14

DOM Парсинг

0 голосов
/ 09 октября 2008

Кто-нибудь знает, как анализировать DOM и определить, какая строка выбрана в ASP.NET ListView? Я могу взаимодействовать с DOM через HtmlElement в Silverlight, но я не смог найти свойство, указывающее, что строка выбрана.

Для справки: этот управляемый метод отлично работает для ASP.NET ListBox

var elm = HtmlPage.Document.GetElementById(ListBoxId);

foreach (var childElm in elm.Children)
{
    if (!((bool)childElm.GetProperty("Selected")))
    {
       continue;
    }
}

Ответы [ 3 ]

1 голос
/ 09 октября 2008

Если в вашем списке просмотра есть определенный класс CSS для выбранной строки, вы можете попробовать отфильтровать его

1 голос
/ 02 ноября 2008

Предложение mathieu должно работать нормально. Поскольку вы упомянули строку, я бы сказал, добавить идентификатор к элементу tr в вашем ListView, который вы затем можете найти с помощью jQuery.

Итак,

<tr id='selectedRow'>
......
</tr>

$(document).ready(function() {
    $("#selectedRow").click(function() {
        alert('This is the selected row');
    });

});
0 голосов
/ 09 октября 2008

У меня нет среды разработки, чтобы проверить это, но не могли бы вы вызвать GetProperty ('selectedIndex') для элемента ListBoxID? Затем из этого вы выясняете, какой ребенок выбран, и возвращаете его, используя elm.Children.

Редактировать: Сегодня утром установил среду разработки и провел некоторое тестирование. Вот фрагмент кода, который работал для меня:

HtmlElement elem = HtmlPage.Document.GetElementById("testSelect");
int index = Convert.ToInt32(elem.GetProperty("selectedIndex"));
var options = (from c in elem.Children
              let he = c as HtmlElement
              where he.TagName == "option"
              select he).ToList();

output.Text = (string)options[index].GetProperty("innerText");

Конечно, вам придется изменить «textSelect» на имя вашего HTML-элемента выбора. Запрос linq необходим, так как свойство Children состоит из ScriptableObjects, и только около половины из них являются элементами option, которые вас интересуют.

...