簡體   English   中英

gridview突出顯示當前行

[英]gridview highlighting current row

是否有內置方法突出顯示gridview中當前選定的行?

我的gridview中的每一行都有一個按鈕(通過buttonField)。 當用戶按下此按鈕時,背景顏色會發生變化......我這樣做:

Protected Sub gvTransferOwner_RowCommand(sender As Object, e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvTransferOwner.RowCommand
    If e.CommandName = "Select" Then
        Dim index As Integer = Convert.ToInt32(e.CommandArgument)
        Dim selectedRow As GridViewRow = gvTransferOwner.Rows(index)
        selectedRow.Style.Add("background-color", "#ffcccc")
    End If
End Sub

這會突出顯示該行,但是一旦用戶按下另一行中的按鈕,它仍會在所有先前按下的行中保留該顏色。

有沒有一種方法可以一次只顯示一行(當前選定的行)?

謝謝

如果使用全局變量來存儲正在選擇的行的索引,則只要選擇了新行,就可以將該行更改回原始顏色。

Dim previousSelected As Integer 'global variable to store the last selected index
Protected Sub gvTransferOwner_RowCommand(sender As Object, e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvTransferOwner.RowCommand
    If e.CommandName = "Select" Then
        Dim index As Integer = Convert.ToInt32(e.CommandArgument)
        Dim selectedRow As GridViewRow = gvTransferOwner.Rows(previousSelected)
        selectedRow.Style.Add("background-color", "#ffffff") 'change it back to original color
        selectedRow = gvTransferOwner.Rows(index)
        selectedRow.Style.Add("background-color", "#ffcccc") 'change the color of the new row
        previousSelected = index
    End If
End Sub

gridview有一個SelectedIndexChanged事件,還有一個GridView.SelectedRow屬性 ,可以與@jonhopkins的答案一起使用。

我在SelectedIndexChanged事件中這樣做,它適用於我。

GridView1.Rows[GridView1.SelectedIndex].BackColor = Color.Yellow;

Dim previousSelected As Integer

        If e.CommandName = "Select" Then
            previousSelected = GetVal(ViewState("previousSelected"))
            Dim index As Integer = Convert.ToInt32(e.CommandArgument)
            Dim selectedRow As GridViewRow = grvOptionset.Rows(previousSelected)
            selectedRow.Style.Add("background-color", "#ffffff") 'change it back to original color
            selectedRow = grvOptionset.Rows(index)
            selectedRow.Style.Add("background-color", "#ffcccc") 'change the color of the new row
            ViewState("previousSelected") = index
        End If
Dim previousSelected As Integer 'global variable to store the last selected index
Protected Sub gvTransferOwner_RowCommand(sender As Object, e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvTransferOwner.RowCommand
    If e.CommandName = "Select" Then
         previousSelected = ViewState("previousSelected")
        Dim index As Integer = Convert.ToInt32(e.CommandArgument)
        Dim selectedRow As GridViewRow = gvTransferOwner.Rows(previousSelected)
        selectedRow.Style.Add("background-color", "#ffffff") 'change it back to original color
        selectedRow = gvTransferOwner.Rows(index)
        selectedRow.Style.Add("background-color", "#ffcccc") 'change the color of the new row
         ViewState("previousSelected") = index
    End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM