2014-06-17 83 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事件。同样,您可以在嵌套网格中使用任何事件并获取详细信息。