- PR -

GridView、非表示の列の値を見るには?

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2007/08/21
投稿数: 48
投稿日時: 2007-09-02 18:37
お世話になります。

VS2005(VB)でWEBサイトを作成中です。

GridViewで特定の行だけ色を変えたくて

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
  If e.Row.RowType = DataControlRowType.DataRow Then
    If e.Row.Cells(2).Text.Trim() = "Blue" Then
      e.Row.BackColor = Drawing.Color.Blue
    ElseIf e.Row.Cells(2).Text.Trim() = "Pink" Then
      e.Row.BackColor = Drawing.Color.Pink
    End If
  End If
End Sub

としました。
Cells(3)は行の色を持っている項目です。
Cells(3)のVisibleをTrueにしているときはこれで期待したとおりの動作をするのですが、
Falseにすると色が変わりません。

VisibleをFalseにしても表示するかどうかだけなのだと思っていたのですがどうやら違うようです。
このような場合、表示はしないが値は使いたい場合、どのようなコーディングをすれば良いのでしょうか?
よろしくお願いします。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-09-02 22:33
http://gridviewguy.com/ArticleDetails.aspx?articleID=178

こんな感じで結構面倒です。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2007-09-03 06:31
GridViewにデータをバインドした後に非表示にする方法もあります。

http://www.atlas.dev-asp.net/Goto.aspx?id=060717-1

コード:
  Protected Sub GridView1_RowCreated(...)
    If e.Row.RowType = DataControlRowType.DataRow _
      OrElse e.Row.RowType = DataControlRowType.Header Then
      e.Row.Cells(3).Visible = False
      e.Row.Cells(4).Visible = False
    End If
  End Sub


_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
未記入
常連さん
会議室デビュー日: 2007/08/21
投稿数: 48
投稿日時: 2007-09-03 09:59
引用:

Accessさんの書き込み (2007-09-03 06:31) より:
GridViewにデータをバインドした後に非表示にする方法もあります。

http://www.atlas.dev-asp.net/Goto.aspx?id=060717-1

コード:
  Protected Sub GridView1_RowCreated(...)
    If e.Row.RowType = DataControlRowType.DataRow _
      OrElse e.Row.RowType = DataControlRowType.Header Then
      e.Row.Cells(3).Visible = False
      e.Row.Cells(4).Visible = False
    End If
  End Sub






ありがとうございます。
動きました。
1

スキルアップ/キャリアアップ(JOB@IT)