2010-03-09 3 views
0

목록의 단일 항목을 나타내는 ASP.Net 웹 사용자 정의 컨트롤이 있습니다. 사용자가 항목의 순서를 바꿀 수 있도록 각 항목에는 항목을 목록 위나 아래로 이동시키는 단추가 있습니다. 이 중 하나를 클릭하면 이벤트가 상위 페이지로 전달되고 상위 페이지로 이동하면 항목이 자리 표시 자 컨트롤에 셔플됩니다. 목록 항목에서ASP.Net 이벤트는 다른 모든 시간에만 발생합니까?

코드 조각 :

Public Event UpClicked As System.EventHandler 
Protected Sub btnUp_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
       Handles btnUp.Click 
    RaiseEvent UpClicked(Me, New EventArgs()) 
End Sub 

그리고 부모 컨테이너 : 그것은 원래 다른 모든 시간과 같은 테스트에서 보낸 사람에 대한 값을 보였다

rem (within the code to add an individual item to the placeholder) 
    AddHandler l_oItem.UpClicked, AddressOf UpClicked 


Protected Sub UpClicked(ByVal sender As Object, ByVal e As EventArgs) 
    MoveItem(DirectCast(sender, ScriptListItem), -1) 
End Sub 

은 (속성에 의해 확인) 그 도달 UpClicked는 인접한 ListItem 중 이 아니며입니다. 첫 번째 클릭은 항상 잘못되었습니다. 그런 다음 올바른 컨트롤을위한 두 번째 클릭입니다.

현재 테스트는 버튼의 클릭 이벤트가 매번 무시되는 것을 보여줍니다. 이벤트가 확실히 확립되어 있지만 컨트롤 내의 클릭 이벤트의 중단 점은 단순히 적중되지 않습니다.

왜?

public event SomeEventHandler UpClicked; 

이 참조 : 버블 링 이벤트에

+0

웹 양식 코드를 게시 할 수 있습니까? –

+0

당신은 어느 비트입니까? – eftpotrm

+0

목록을 만드는 곳 –

답변

0

, 당신은 사용자 제어 할 수있는 이벤트를 정의

public class SomeEventArgs { 
    public ListItem Selected { get; set; } 
} 
public delegate void SomeEventHandler(object sender, SomeEventArgs e); 

여기에 하나 개 이상의 속성을 저장할 수있는; 당신은 원하는만큼 많은 세부 사항을 저장할 수 있습니다. 그러나이 이벤트 arg를 사용하여 페이지에 모든 정보를 전달할 수 있습니다. 문제가 될 수 있습니다. 사용자 정의 컨트롤에서 다음과 같은 작업을 수행하십시오.

HTH.

+0

이는 VB.Net 프로젝트는하지만 내가 (서식 죄송합니다)있어 무엇에 관하여 - 공공 이벤트 작업은 System.EventHandler으로 공공 이벤트 DownClicked이 작업은 System.EventHandler 으로 이 개체로 하위 btnUp_Click (ByVal의 보낸 사람을 보호 UpClicked , ByVal e As System.EventArgs) 핸들 btnUp.Click RaiseEvent UpClicked (Me, New EventArgs()) End Sub 위의 코드는 교대로 정확한 개체와 잘못된 개체를 얻고 있습니다. 엄격한 회전 ... – eftpotrm

+0

그게 무슨 뜻인지 잘 모르겠습니까? ScriptListItem은 사용자 컨트롤입니까? 위/아래 클릭 이벤트가 전달되어 주문을 변경할 수 있습니까? ASP.NET ListItem 클래스 또는 자신의 사용자 지정 클래스를 돌아 다니십니까? –

+0

ScriptListItem은 ListItem 클래스와 아무 관련이없는 모든 범위의 속성을 가진 사용자 정의 컨트롤의 이름입니다. UpClicked 이벤트는 첫 번째 속성으로 Me를 전달해야하지만 Me는 해당 일반 속성을 확인하는 것으로부터 올바른 행과 인접한 행으로 교대로 전달됩니다. – eftpotrm

관련 문제