2016-01-15 5 views
0

Я пытаюсь получить только данные для дочернего шаблона при итерации по сетке.RadGridView получает данные дочернего шаблона?

Я начинаю с этим:

 foreach (GridViewRowInfo row in radGridView1.Rows) 
     { 
      err = IterateChildRows(row); 
     } 

и передать строку следующим образом:

private bool IterateChildRows(GridViewRowInfo rowInfo) 
    { 
     bool err = false; 
     if (rowInfo.Cells[5].Value != null && rowInfo.Cells[5].Value.ToString() != "01/01/1900") 
     { 
      if (rowInfo.Cells[0].ViewTemplate.Templates[0].Caption == "Current") 
      { 
       if (rowInfo.ViewTemplate.Templates[0].RowCount == 0) 
       { 
        MessageBox.Show("Not all products have CURRENT quantity breaks", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
        err = true; 
       } 
      } 
     } 
     return err; 
    } 

Моя проблема в том, что я не могу найти только данные шаблона ребенка для строки я прошел Все, что я пробовал, похоже, имеет ВСЕ дочерние строки из всех основных элементов шаблона, а не только строку, в которую я прошел.

Итак, если у меня есть 2 элемента в моей основной сетке и по 3 элемента в моем ребенке t emplate тогда я получаю счетчик 6, а не 3.

Я не знаю, где я неправильно ...

Anyone?

Приветствия Dean

ответ

1

Попробуйте следующее, childrows доступны через HierarchyRowInfo

private bool IterateChildRows(GridViewRowInfo rowInfo) 
{ 
    bool err = false; 
    GridViewHierarchyRowInfo hierarchyRow = rowInfo as GridViewHierarchyRowInfo; 

    //To get current row childRows count 
    int noOfChildRows = hierarchyRow.ChildRows.Count; 

    //looping through the child rows 
    foreach (GridViewRowInfo row in hierarchyRow.ChildRows) 
    { 
     //check if its current child row 
     if(row.IsCurrent) 
     { 
      // Do your logic 
     } 
    } 

    return err; 
} 
+0

Благодаря Bayeni - Я искал это в течение недели ... это было как раз то, что я был после того, как :) –

+0

Я рад, что помог :) – Bayeni

 Смежные вопросы

  • Нет связанных вопросов^_^