2014-03-04 3 views
0

У меня есть столбец с различным статусом, который меняет цвет в зависимости от буквы.Событие OnDatabound в Gridview не работает над Редактированием

Например, если буква «R», то клетка красного цвета, если «G», то зеленый и т.д ...

Проблема заключается в изначально работает, но тогда, когда пользователь редактирует запись и изменения статус цвет не обновляется до соответствующей буквы.

Пожалуйста, обратите внимание на код и дайте мне знать, что я делаю неправильно:

if (dataItem != null) 
      { 
       var label = dataItem["Status"].FindControl("StatusID") as Label; 

       if (label != null) 
       { 

        var item = dataItem; 
        var text = label.Text; 

        switch (text) 
        { 
         case "G": 
          item["Status"].BackColor = Color.Green; 

          break; 
         case "Y": 
          item["Status"].BackColor = Color.Yellow; 
          break; 
         case "O": 
          item["Status"].BackColor = Color.Orange; 
          break; 
         case "M": 
          item["Status"].BackColor = Color.SaddleBrown; 
          break; 
         case "R": 
          item["Status"].BackColor = Color.Red; 
          break; 
         case " ": 
          item["Status"].BackColor = Color.Gray; 
          break; 
        } 
       } 
      } 

Update Теперь, когда я иду, чтобы изменить запись некоторые записи не позволяют мне обновить их.

<EditItemTemplate> 
    <telerik:RadComboBox ID="StatusDDL" runat="server" SelectedValue='<%# 
Bind("Status")%>' DataTextField="Status" Width="100px" Skin="Metro" style="margin-top: 5px; margin-bottom: 5px" DataValueField="Status" DataSourceID="StatusFilter" TabIndex="7" AppendDataBoundItems="True"></telerik:RadComboBox>      
</EditItemTemplate> 


<ItemTemplate> 
    <asp:Label runat="server" ID="StatusID" Text='<%# Bind("Status")%>'></asp:Label> 
</ItemTemplate> 
+0

Вы связывание еще раз после завершения редактирования? – Bharadwaj

+0

@Bharadwaj, no. Должен ли я вызвать TestGrid.Rebind(); метод? – CSharpDev4Evr

ответ

0

Найден мое решение:

if (dataItem == null) return; 

    switch (dataItem["Status"].Text) 
    { 
     case "G": 
      dataItem["Status"].BackColor = Color.Green; 

      break; 
     case "Y": 
      dataItem["Status"].BackColor = Color.Yellow; 
      break; 
     case "O": 
      dataItem["Status"].BackColor = Color.Orange; 
      break; 
     case "M": 
      dataItem["Status"].BackColor = Color.SaddleBrown; 
      break; 
     case "R": 
      dataItem["Status"].BackColor = Color.Red; 
      break; 
     case " ": 
      dataItem["Status"].BackColor = Color.Gray; 
      break; 
    } 
Смежные вопросы