2012-04-23 4 views
0

グリッドビューの行の色を変更するには、次のコードがあります。これは正常に動作します、私は何をしようとしているので、同じ値の行を表示することができない、同じ色の場合は、Date返された値のテキストの色を変更します。1つのフィールドのグリッドビューのテキストと値に依存する行

誰でもお手伝いできますか?

Protected Sub KitNotReturned(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound 

     If e.Row.RowType = DataControlRowType.DataRow Then 

      Dim dateLoaned As String = DataBinder.Eval(e.Row.DataItem, "DateLoaned") 
      Dim dateReturend As String = DataBinder.Eval(e.Row.DataItem, "DateReturned") 

      If dateLoaned = dateReturend Then 

       e.Row.BackColor = Drawing.Color.HotPink 


      End If 
     End If 

    End Sub 

おかげ

+0

これがうまくいっていると言うと、あなたが何を求めているのかは分かりません。 –

+0

行の色を変更するコードが正常に動作しています。データ項目DateReturnedのテキストの色を変更するために何かを追加したいだけです。 – Sophie

+0

私は e.Row.Cellsを使用してこれを行っている(4).ForeColor = Drawing.Color.HotPink 感謝 – Sophie

答えて

0

OK - 今私は理解して!それは多くの場合、GridViewの列の列挙を設定することをお勧めします - 例えば:

Enum GvColumn 
    Id = 0 
    Name = 1 
    ... 
    DateReturned = 4 
End Enum 

あなたはその後、として列を参照することができます:あなたがエラーを取得します可能性が低くなります

e.Row.Cells(GvColumn).ForeColor 

列を追加/削除するときは、列挙を最新の状態に保つ必要があります。 あなたはそれが空の文字列であることを、セルのテキストプロパティを設定することで行っている可能性が確かに他の方法:

e.Row.Cells(GvColumn).Text="" 

最後に、あなたがにFindControlを使用し、その後、テンプレート列であることを、列を設定している可能性がその中のテキストボックスを見つける。テンプレート列は次のようになります。

<asp:TemplateColumn Header="Something here"> 
<ItemTemplate> 
<asp:textbox id="txtDateReturned" runat="server" text=='<%# Bind("DateReturnedText") %>' /> 
</ItemTemplate> 
</asp:TemplateColumn> 

あなたは、その後にこれを得ることができる:ちょうどいくつかの考え

Dim tb as TextBox = CType(e.Row.FindControl("txtDateReturned"),TextBox) 

関連する問題