2013-06-24 1 views
0

DataGrid에도 바인드 된 개체에 바인딩 된 ComboBox가 있습니다. ComboBox 선택 항목이나 DataGrid의 SelectedItem을 변경하면 ComboBox에서 SelecionChanged 이벤트가 트리거됩니다.DataGrid SelectionChanged 트리거 소스 구성 요소를 얻는 방법은 무엇입니까?

어떤 구성 요소 (DataGrid 또는 ComboBox)가 이벤트를 트리거했는지 알 수있는 방법이 있습니까?

+0

이벤트에는 '보낸 사람'과 '이메일'이 있습니다. '발신자'는 누가 이벤트를 호출했는지 알려줍니다. – Brian

+0

나는 보낸 사람을 사용해 보았지만 보낸 사람 유형은 항상 ComboBox입니다. 이유를 모르겠다. 또한 DataGrid SelectionChanged 이벤트를 사용하여 ComboBox SelectionChanged 이벤트에서 처리 할 플래그를 설정하려고 시도했지만 ComboBox SelectionChanged 이후에 DataGrid SelectionChanged가 트리거됩니다. –

답변

0

내가 당신이라면, 나는 SelectedItem 또는 SelectedChanged 중단 점에 중단 점을 배치하고 디버그 모드에서 솔루션을 실행하고 첫 번째 중단 점에 도달 한 장소를 살펴 보았습니다.) Callstack은 또한 .

0

둘 다 객체 데이터 소스에 연결되어 있다고 가정합니다. 동일한 SelectMethod를 사용하는 드롭 다운에 대해 별도의 데이터 소스를 만들면됩니다. 그렇게하면 둘 다 다시 게시 후에 동일한 데이터로 업데이트됩니다.

그렇지 않으면 드롭 다운의 onchange 이벤트에 javascript를 사용하고 변경된 경우 if로 숨겨진 필드를 설정하십시오. 그런 다음 해당 값을 확인하여 드롭 다운의 값인지 확인하십시오.

<asp:DropDownList runat="server" ID="drpOption"onchange="javascript:OptionChanged();"></asp:DropDownList> 

function OptionChanged() { 
    $('#hdnField').val = 'true'; 

    return false; 
} 
1

ComboBox를 다시 게시하려면 AutoPostBack으로 설정되어 있다고 생각하십니까? 이것이 GridView의 데이터에 전혀 영향을 주면 모든 이벤트가 실행됩니다. ComboBox가 AutoPostBack = true로 설정된 경우와 같이 전체 포스트 백이 트리거되면 새 데이터가있는 모든 이벤트가 시작됩니다.

제어주기를 살펴보아야합니다. http://msdn.microsoft.com/en-us/library/aa719775(v=vs.71).aspx (이것은 단지 msdn 문서이므로 좋지는 않지만 좋은 출발점입니다.)

... 질문과 함께 몇 가지 코드를 게시해야합니다. :) 당신이하는 일이 조금 애매합니다. 그들은 모두 어떤 대상에 묶여 있습니까? 또는 GridView와 ComboBox에 동일한 데이터 집합이 바인딩되어 있습니까?

편집 :이 게시물에 약간의 도움이 될 : Two types of postback events

0

U는 데이터 그리드 및 콤보 상자 모두 선택 변경 이벤트를 확인하고 중단 점을 적용하여 확인할 수 있습니다이 부분을 먼저 실행하는 .. !!