2011-12-28 2 views
2

DevExpress master-detail ASPxGridView? 찾은 적이있는 세부 그리드의 선택된 행에 액세스하는 방법을 누구든지 설명 할 수 있습니까? an example on the devexpress support website을 찾았지만 견인차를 얻을 수 없으며 DevExpress 11 버전을 사용하고 있습니다.ASPxGridView - 마스터 - 세부 GridView의 세부 그리드에서 선택된 행을 얻는 방법?

미리 감사드립니다.

+0

어떤 차트에서 선택한 행을 세부 그리드로 가져 오시겠습니까? – Akhil

+0

디테일 그리드의 SelectionChanged() 이벤트에서 가급적이면 그 코드를 사용하여 세부 그리드에 액세스 할 수 없으므로 그 이벤트를 실제로 사용할 수는 없습니다. –

+0

정확히 작동하지 않는 것은 무엇입니까? 이벤트가 실행되지 않거나 ...? 코드를 게시 할 수 있습니까? – Filip

답변

3

세부 그리드의 선택된 행을 가져 오는 방법을 찾았지만이 방법으로 '권고'하는 방법을 모르지만 세부 그리드에 onload() 이벤트를 추가 한 다음 이를 ASPxGridView로 캐스팅하여 GridView의 해당 인스턴스에 액세스 할 수있었습니다. 여기

내 코드, 세부 그리드입니다 :

<Templates> 
      <DetailRow> 

       <dx:ASPxGridView ID="detailGrid" runat="server" DataSourceID="SqlDataSource2" 
        Width="100%" OnBeforePerformDataSelect="detailGrid_DataSelect" 
         KeyFieldName="InvoiceID" 
         EnableCallBacks="False" 
         onload="detailGrid_Load" 
          > 

후 나는이 같은 onoad() 이벤트 처리 : 그래서

ASPxGridView gridView; 
protected void detailGrid_Load(object sender, EventArgs e) 
{ 

    gridView = sender as ASPxGridView; 
    gridView.SelectionChanged += new EventHandler(gridView_SelectionChanged); 

} 

난 그냥 세부 그리드의 ASPxGridView 인스턴스를 만들고, 이제 SelectionChanged() 이벤트를 사용할 수 있습니다. 그것이 도움이 될 것입니다하지만 많은 사람들이 여기에 같은 문제로 향하고있다 가정하고 있기 때문에 사전에

private static int invoiceID; 

    void gridView_SelectionChanged(object sender, EventArgs e) 
    { 
     invoiceID = Convert.ToInt64(gridView.GetSelectedFieldValues("InvoiceID")[0]); 
    } 
0

덕분에 답을 user189756하기 이전의 대답은 그 이후 DevExpress의 Asp.Net 웹폼의 현재 버전에 대한 최신 아니기 때문에 거의 5 년 전에 쓰여졌습니다. 여기서 중요한 점을 추가하기를 원했습니다. 다음과 같이 ASPxGridView 속성에 서버 측에서 선택 이벤트를 처리하기 위해 지금 당신은 그것을 지정해야합니다 : 내가 클릭하여 행 선택을 사용하지만, 체크 박스를 사용하여 다른 변종도있다

<dx:ASPxGridView ID="MainGrid" runat="server"> 
    <Columns> 
     <!-- Grid Columns here --> 
    </Columns> 
    <Templates> 
     <DetailRow> 
      <dx:ASPxGridView ID="DetailGrid" runat="server" KeyFieldName="ID" OnInit="Grid_Init" OnSelectionChanged="Grid_SelectionChanged"> 
       <Columns> 
        <!-- Grid Columns here --> 
       </Columns> 
       <!-- Now the following code is relevant to process Selection Event on Server Side--> 
       <SettingsBehavior AllowFocusedRow="true" 
        AllowSelectByRowClick="true" 
        ProcessFocusedRowChangedOnServer="true" 
        ProcessSelectionChangedOnServer="true"/> 
       <SettingsDetail IsDetailGrid="True" /> 
      </dx:ASPxGridView> 
     </DetailRow> 
    </Templates> 
    <SettingsDetail ShowDetailRow="True" /> 
</dx:ASPxGridView> 

알 수 있습니다. 이제 코드에서 Selection Event Handler를 구현해야합니다.

관련 문제