1

私は GridView に Column(Validate) を持っています。この列には ' v ' または ' notv 'の2 つの値が含まれてます検証しません..試してみましたが、Gridviewが表示されたときに何も変更されていません。GridView1.Rows(i).Cells(10).Text

これが私のコードです:

ボタンをクリックすると、GridView が表示されます。

<asp:GridView ID="GridView1" runat="server" CssClass="table" GridLines="None">
                           </asp:GridView>

'page.aspx.vb

cmd.Connection = cx
        cmd.CommandText = "select .., validate from table"
        da = New SqlDataAdapter(cmd)
        da.Fill(dt)
        GridView1.DataSource = dt
        GridView1.DataBind()
        For i = 0 To GridView1.Rows.Count - 1
            GridView1.Rows(i).Cells(0).ForeColor = System.Drawing.Color.Blue
            If GridView1.Rows(i).Cells(10).Text = "v" Then
                GridView1.Rows(i).Cells(10).Text = "VALIDATE"
                GridView1.Rows(i).Cells(10).ForeColor = System.Drawing.Color.Green
            ElseIf GridView1.Rows(i).Cells(10).Text = "Notv" Then
                GridView1.Rows(i).Cells(10).Text = "Not VALIDATE"
                GridView1.Rows(i).Cells(10).ForeColor = System.Drawing.Color.Red
            End If
        Next

お時間をいただきありがとうございます!

4

3 に答える 3

2

まず、これはrowdataboundイベントにある必要があります

次に、スペースをトリミングしてみてください。問題が発生する可能性があります

If GridView1.Rows(i).Cells(10).Text = "v" Then
                GridView1.Rows(i).Cells(10).Text = "VALIDATE"

への変更

If GridView1.Rows(i).Cells(10).Text.Trim() = "v" Then
                GridView1.Rows(i).Cells(10).Text = "VALIDATE"

また、rowdatabound イベントのヘッダー行を確認します

gridview にバインドされたファイルがある場合は機能するはずです。テンプレートを使用している場合は、検索コントロールを使用して特定のコントロールを見つけてから、その値を変更する必要があります。

于 2013-08-21T04:59:48.390 に答える
1

RowDataBound を使用せずに、そのように機能します。

コードビハインドは次のとおりです。

For i = 0 To GridView1.Rows.Count - 1
        GridView1.Rows(i).Cells(0).ForeColor = System.Drawing.Color.Blue
        If GridView1.Rows(i).Cells(10).Text = "v" Then
            GridView1.Rows(i).Cells(10).Text = "VALIDATE"
            GridView1.Rows(i).Cells(10).ForeColor = System.Drawing.Color.Green
        ElseIf GridView1.Rows(i).Cells(10).Text = "Notv" Then
            GridView1.Rows(i).Cells(10).Text = "Not VALIDATE"
            GridView1.Rows(i).Cells(10).ForeColor = System.Drawing.Color.Red
        End If
    Next

皆様、ご回答ありがとうございます!

于 2013-08-21T07:49:55.387 に答える
0

Try making your changes in GridView's RowDataBound event e.g.

 Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridView1.RowDataBound
        'Do stuff with e.Row.Cells(0)
        'Do stuff with e.Row.Cells(10)
        'etc...
 End Sub

It fires for every row bound to your datatable so you don't have to loop thru rows.

于 2013-08-21T04:49:41.783 に答える