C# RowDataBound gridview选定颜色

C# RowDataBound gridview选定颜色,c#,vb.net,C#,Vb.net,我有一个RowDataBound和一个gridview查找哪一年是活动的,现在它有一个,并且突出显示。但是假设我想让另一个年份变得活跃,这个年份仍然突出显示,而你点击的那个年份也突出显示。但我想继续 VB: 欢迎使用C#或vb帮助,因此我认为它必须像selectedindexchange那样使用。但是这个SUB有一半没用,不是吗 试图完全理解。。。。但我认为,当年份发生变化时,您需要做的是重新绑定网格。这将运行您的rowdatabound代码并更改亮点。如果没有看到所有代码,很难说。。。但在页面

我有一个
RowDataBound
和一个
gridview
查找哪一年是活动的,现在它有一个,并且突出显示。但是假设我想让另一个年份变得活跃,这个年份仍然突出显示,而你点击的那个年份也突出显示。但我想继续

VB:


欢迎使用C#或vb帮助,因此我认为它必须像
selectedindexchange
那样使用。但是这个
SUB
有一半没用,不是吗

试图完全理解。。。。但我认为,当年份发生变化时,您需要做的是重新绑定网格。这将运行您的rowdatabound代码并更改亮点。

如果没有看到所有代码,很难说。。。但在页面加载时,您可以设置FIN year(仅在不回发的情况下执行此操作)

修改您的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
然后在btselect.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

希望这能有所帮助

是的,在我的表格中,我将财务年度设置为今年,因此,也许我可以在那里说,如果年度更改为任何年份,然后更改按钮并点亮。那对吗?
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