2014-06-17 125 views
0

您好我有這是通過關係與孩子電網GridDataControl。在父網格上應用了一種行爲,它格式化網格並獲取列標題名稱。我想將這個相同的行爲應用到子網格。兩個網格的數據格式相同,但主子網格不可訪問,只有其列通過GridDataVisibleColumn屬性。Syncfusion網格嵌套行爲

有關如何做到這一點的任何想法?

+0

所以......爲什麼是孩子網無法訪​​問?在什麼情況下?它是如何通過關係相關的?也許這只是我,但我不確定你究竟在問什麼這個問題...... –

回答

0

在使用父格的行爲,您可以使用ParentGrid的RecordExpanded事件像下面的代碼片段讓孩子電網。

代碼段:

protected override void OnAttached() 
{ 
    this.AssociatedObject.Model.Table.RecordExpanded += Parent_RecordExpanded; 
    base.OnAttached(); 
} 

private void Parent_RecordExpanded(object sender, GridDataValueEventArgs<GridDataRecord> e) 
{ 
    var mainGridColumns = e.Value.Table.Model.TableProperties.VisibleColumns; 
    //Here header style is applied to first column in Parent grid. 
    mainGridColumns[0].HeaderStyle = new GridDataColumnStyle(); 
    mainGridColumns[0].HeaderStyle.Background = Brushes.Red; 
    var childGridColumns = e.Value.ChildModels[0].Table.Model.TableProperties.VisibleColumns; 

    //Here, header style is applied to first column of nested grid. 
    childGridColumns[0].HeaderStyle = new GridDataColumnStyle(); 
    childGridColumns[0].HeaderStyle.Background = Brushes.Brown; 
    e.Value.ChildModels[0].Table.CurrentCellValidating += Table_CurrentCellValidating; 
} 

void Table_CurrentCellValidating(object sender, GridDataCurrentCellValidatingEventArgs args) 
{ 
    foreach (var item in (sender as GridDataTable).Model.TableProperties.VisibleColumns) 
    { 
     if (item.MappingName == "OrderID") 
     { 
      // do action 
     } 
    } 
} 

你可以從像上面的代碼片斷的ChildModels孩子電網。 ChildModels包含父網格中嵌套網格的數量。

在這裏,我已經改變了標題樣式爲在父網格的第一列以及嵌套網格和也我已經使用嵌套網格的CurrentCellValidating事件。同樣,您可以在嵌套網格中使用任何事件並獲取詳細信息。