2014-01-27 2 views
0

У меня есть RowDataBound с gridview, который ищет, какой год активен, теперь он имеет один и выделенный. Но скажем, что я хочу сделать еще один год активным, он все еще выделен, и тот, который вы нажимаете, также выделен. но я хочу наRowDataBound gridview выбранный цвет

VB:

Protected Sub grdFinYear_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdFinYear.RowDataBound 
    If e.Row.RowType = DataControlRowType.DataRow Then 

     If grdFinYear.DataKeys(e.Row.RowIndex).Values("FIN_ID") = FIN_ID Then 
      Dim activeButton As Button = e.Row.FindControl("btnSelect") 
      activeButton.CssClass = "ActionButtonsActiveYear" 
      e.Row.BackColor = Color.FromArgb(0, 121, 139, 169) 
     Else 
      Dim makeActiveButton As Button = e.Row.FindControl("btnSelect") 
      makeActiveButton.CssClass = "ActionButtonsMakeThisYearActive" 
     End If 
    End If 
    End Sub 

C# или VB помощь приветствуется, так что я думаю, что его придется использовать как selectedindexchange. но тогда это SUB наполовину бесполезно, нет?

ответ

0

Попытка полностью понять .... но я думаю, что вам нужно сделать, когда год изменится, вам нужно будет перестроить сетку, это запустит ваш код rowdataound и изменит основные моменты.

+0

Да, в загрузке моей формы я установил год FIN в этом году, так что, может быть, я могу сказать, если год изменится на то, что тогда изменит кнопку и hilight. Правильно ли это? – TheUser

0

Не видя всего вашего кода, трудно сказать ... но да на загрузку страницы вы устанавливаете FIN год (делайте это только в том случае, если не обратная передача).

Изменить код RowDataBound добавить некоторые CommandName и CommandArgument атрибуты к btnSelect как так ...

Protected Sub grdFinYear_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdFinYear.RowDataBound 
If e.Row.RowType = DataControlRowType.DataRow Then 

    If grdFinYear.DataKeys(e.Row.RowIndex).Values("FIN_ID") = FIN_ID Then 
     Dim activeButton As Button = e.Row.FindControl("btnSelect") 
     activeButton.CssClass = "ActionButtonsActiveYear" 
     activeButton.CommandName = "ActiveButton" 
     activeButton.CommandArgument = **Bind to Year for this row** 
     e.Row.BackColor = Color.FromArgb(0, 121, 139, 169) 
    Else 
     Dim makeActiveButton As Button = e.Row.FindControl("btnSelect") 
     makeActiveButton.CssClass = "ActionButtonsMakeThisYearActive" 
     makeActiveButton.CommandName = "MakeActiveButton" 
     makeActiveButton.CommandArgument = **Bind to Year for this row** 
    End If 
End If 
End Sub 

Затем в коде btnSelect.click события ...

Protected Sub btnSelect_Click(ByVal sender As Object, ByVal e as EventArgs) Handles btnSelect.Click 
    If sender.CommandName = "MakeActiveButton" Then 
     FIN = CInt(sender.CommandArgument) 
     grdFIinYear.DataBind() 
    End If 
End Sub 

Надежда что Помогает

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