2010-11-02 21 views
1

Каков наилучший способ доступа к расширенным свойствам DataColumn в rowDataBound и применить определенный класс и подсказку, если существует ключ ошибки?DataColumn.ExtendedProperties Data to GridView

protected void gridView_rowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    switch (e.Row.RowType) 
    { 
     case DataControlRowType.Header: 
      ((DataRow)e.Row.DataItem)... 
      break; 
     case DataControlRowType.DataRow: 

      break; 
    } 
} 

Это то, что я получил до того, как застрял. Я заметил, что у моего DataRow не было ссылки на DataColumn.

ответ

0

Следующее, что я придумал, но, к сожалению, оно тесно связано только с одним DataTable. Есть ли способ сделать это для использования в нескольких таблицах данных? Я действительно не хочу принимать свой собственный дерьмовый ответ.

protected void gridView_rowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    switch (e.Row.RowType) 
    { 
     case DataControlRowType.Header: 
      foreach (DataColumn col in myDataTable.Columns) 
      { 
       if (col.ExtendedProperties["error"] != null) 
       { 
        e.Row.Cells[col.Ordinal].CssClass = "error-cell"; 
        e.Row.Cells[col.Ordinal].ToolTip = col.ExtendedProperties["error"].ToString(); 
       } 
      }     
      break; 
     case DataControlRowType.DataRow: 

      break; 
    } 
} 
0

Ну, вы можете извлечь метод, чтобы сделать это за вас, и называть его из всех ваших событий RowDataBound в сетке. Вы можете поместить это в класс grid grid.

public void ShowExtendedProperties(GridViewRow row, DataTable table) 
{ 
switch (row.RowType) 
    { 
     case DataControlRowType.Header: 
      foreach (DataColumn col in table.Columns) 
      { 
       if (col.ExtendedProperties["error"] != null) 
       { 
        row.Cells[col.Ordinal].CssClass = "error-cell"; 
        row.Cells[col.Ordinal].ToolTip = col.ExtendedProperties["error"].ToString(); 
       } 
      }     
      break; 
     case DataControlRowType.DataRow: 
      //I assume you have logic here, or other case statements? 
      break; 
    } 
}