0

У меня есть Gridview из 10 строк и 3 столбца. Я хочу изменить цвет ячейки при ее нажатии. Затем, если пользователь снова нажмет на него, удалите цвет.Изменение цвета выбранной ячейки в gridview _RowCommand()

С помощью этого кода у меня уже есть номер строки, хранящийся в index.

Protected Sub GridView6_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView6.RowCommand 
     Dim index As Integer = Convert.ToInt32(e.CommandArgument) 
        // Here I want to change my selected cell color 
+0

К сожалению, я не получил и, я просто создать событие rowcommand, так что я могу сделать некоторые другие вещи, как «Если e.CommandName =„Все“ то ... –

ответ

0

Наконец, я нашел трюк. Я не уверен, что это правильный путь, но да, это сработало для меня.

Protected Sub GridView6_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView6.RowCommand 
    Dim index As Integer = Convert.ToInt32(e.CommandArgument) 
    Dim r As GridViewRow = GridView6.Rows(index) 
    Dim cell1 As Button = r.Cells(0).Controls(0) 
    Dim c1 As String = RTrim(cell1.Text) 
    Dim cell2 As Button = r.Cells(1).Controls(0) 
    Dim c2 As String = RTrim(cell2.Text) 
    Dim cell3 As Button = r.Cells(2).Controls(0) 
    Dim c3 As String = RTrim(cell3.Text) 

    Dim cellname As String = RTrim(e.CommandName) 

    If c1 = cellname Then 
     If cell1.BackColor = Drawing.Color.OliveDrab Then 
      cell1.BackColor = Drawing.Color.Linen 

     Else 
      cell1.BackColor = Drawing.Color.OliveDrab 

     End If 
    End If 
    // AND same for C2 and C3 

Он работал как способ окрасить и обесцвечиванию;)

-1

Если это веб-страница (так как вы отметили asp.net), я бы сделал это с клиентом, с javascript.

Или иначе страница будет перезагружена при выборе и повторном выборе.

Добавить ячейки в класс и поместить в них событие click. Либо изменение фона css, либо добавление их в новый класс.

+0

Неправильно, asp.net не перезагружает страницу, он использует Javascript ... – Alker

+0

Я не знаю, почему, но я не могу поставить событие щелчка, возможно, потому, что его gridview grid. –

+0

Были ли вы в состоянии разместить ячейки таблицы в class? – Naoe

0

Должно работать

Dim index As Integer = Convert.ToInt32(e.CommandArgument) 
If (GridView1.Rows(index).BackColor = Drawing.Color.Aqua) Then 
    GridView1.Rows(index).BackColor = Drawing.Color.White 
Else 
    GridView1.Rows(index).BackColor = Drawing.Color.Aqua 
End If 
+0

Спасибо за ответ, но он изменит выбранный цвет строки, и я просто хочу, чтобы выбранный цвет ячейки –

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