2008-10-09 6 views
0

누구나 DOM을 구문 분석하고 ASP.NET ListView에서 선택된 행을 확인하십시오. Silverlight에서 HtmlElement를 통해 DOM과 상호 작용할 수 있지만 행이 선택되었음을 나타내는 속성을 찾을 수 없었습니다. 참고로DOM 구문 분석

이 관리 방법은 ASP.NET 목록 상자를 위해 잘 작동

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

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

답변

0

나는 이것을 테스트까지 내 dev에 환경이없는,하지만 당신은에 GetProperty를 ('selectedIndex의')를 호출 할 수 ListBoxID 요소? 그러면 어떤 아이가 선택되었는지 알아 내고 느릅 나무를 사용하여 그 아이를 돌려 보내십시오. 아이들.

편집 : 오늘 아침에 내 dev 환경을 얻었고 테스트를했습니다.

물론
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"); 

, 당신이 당신의 HTML select 요소의 이름으로 "textSelect"로 변경해야합니다 : 여기에 나를 위해 일한 코드 조각입니다. Children 속성이 ScriptableObjects로 구성되어 있고 그 중 약 절반 만 여러분이 신경 쓰는 옵션 요소이기 때문에 linq 쿼리가 필요합니다.

1

귀하의 목록보기가 선택한 행에 대한 특정 CSS 클래스가있는 경우, 당신이 그것을

1

잘 작동합니다 제공하는 제안 마티유 필터링 시도 할 수 있습니다. 당신이 행을 언급했기 때문에 ListView의 tr 요소에 id를 추가하여 jQuery로 찾을 수 있다고 말하고 싶습니다.

그래서,

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

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

});