Master-Detail AspxGridView에 체크 된 행이 있는지 확인해야합니다.aspxgridview Master-Detail에 클라이언트 측에서 행이 체크되어 있는지 확인하십시오.
마스터와나는
grid.GetSelectedRowCount()>0
을 사용할 수 있습니다하지만 그것은 JS를 사용하여 세부 행과 어떻게 확인할 수 있습니까?
Master-Detail AspxGridView에 체크 된 행이 있는지 확인해야합니다.aspxgridview Master-Detail에 클라이언트 측에서 행이 체크되어 있는지 확인하십시오.
마스터와나는
grid.GetSelectedRowCount()>0
을 사용할 수 있습니다하지만 그것은 JS를 사용하여 세부 행과 어떻게 확인할 수 있습니까?
는 이러한 목표를 달성하기 위해 사전에
덕분에 각 세부 그리드에 고유 한 ClientInstanceName를 할당하고 다시 마스터의 그리드 행 ID를 포함해야 할당 된 ClientInstanceName를 사용하여 클라이언트 측에서 특정 세부 그리드에 액세스해야 첫 번째 행에 대한 detailGrid_1, 두 번째 행에 대한 detailGrid_2 등이 있습니다.
각 세부 그리드에 ClientInstanceName을 할당하려면 코드 숨김에서 해당 처리기의 Set ClientInstanceName으로 세부 그리드에 사용자 지정 Page_Init 처리기를 추가해야합니다.
이protected void detailGrid_OnInit(object sender, EventArgs e) {
ASPxGridView detailGridView = (ASPxGridView)sender;
GridViewDetailRowTemplateContainer templateContainer =
(GridViewDetailRowTemplateContainer)detailGridView.NamingContainer;
detailGridView.ClientInstanceName = string.Format("detailGrid_{0}",
templateContainer.VisibleIndex);
}
그런 다음 이벤트 처리기에서 클라이언트 측에서 (당신이 된 이벤트에 언급하지 않았다 : 코드 숨김에서 다음
<dx:ASPxGridView ID="masterGrid" runat="server" ClientInstanceName="masterGrid">
...
<Templates>
<DetailRow>
<dx:ASPxGridView ID="detailGrid" runat="server" OnInit="detailGrid_OnInit">
...
</dx:ASPxGridView>
</DetailRow>
</Templates>
...
</dx:ASPxGridView>
: 같은
그래서, 웹 정의는 보일 수 있습니다 세부 그리드에 선택된 행이 있는지 확인하려는 경우) 마스터 그리드의 행 ID를 가져 와서 세부 그리드에 대한 클라이언트 인스턴스 이름을 수동으로 구성해야합니다 (예 :
eval('detailGrid_' + master_grids_row_id).
또는 JS의 핸들러에 기성 형식으로 전달할 수 있습니다.
올바른 detailGrid 클라이언트 인스턴스 이름이 있으면 다음 JS 메소드를 호출 할 수 있습니다
detailGrid_XX.GetSelectedKeysOnPage();
몇 가지 코드 샘플이 DX 지원 문서를 참조하십시오 https://www.devexpress.com/Support/Center/Question/Details/Q450479
HTH
좋습니다! 그것이 도움이 되었기 때문에 다행 :). – andrews
시도를'VAR selected = DetailGrid.GetSelectedKeysOnPage()'메서드는 콜백이나 포스트 백에서 처리 할 수있는 모든 키 필드 값을 반환합니다. –
작동하지 않는다. 정의되지 않았다. detailGridView는 부모의 일부이며 여러 개의 격자가있을 수 있으므로 하나의 고유 ID가 없습니다 – popiandro