0

10 行 3 列の Gridview があります。セルをクリックしたときにセルの色を変更したい。その後、ユーザーがもう一度クリックすると、色が削除されます。

このコードにより、すでに行番号が に格納されてい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
4

3 に答える 3

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
于 2013-07-17T14:26:09.550 に答える
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

色と変色の両方の方法で機能しました;)

于 2013-07-19T17:23:45.847 に答える
-1

これが Web ページの場合 (asp.net にタグを付けたので)、JavaScript を使用してクライアント側で行います。

そうしないと、選択時にページがリロードされ、再選択されます。

セルをクラスに追加し、クリック イベントを配置します。css の背景を変更するか、新しいクラスに追加します。

于 2013-07-17T14:21:29.333 に答える