0

グリッドビューの行の色を変更する次のコードがあります。これは正常に機能します。私がやろうとしているのは、戻り日値のテキストの色が同じ場合は行の同じ色に変更するため、値が表示されないことです。

誰か助けてもらえますか?

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

ありがとう

4

1 に答える 1

0

ああ、わかってるよ!多くの場合、gridview 列の列挙を設定することをお勧めします。例:

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

その後、列を次のように参照できます。

e.Row.Cells(GvColumn).ForeColor

これにより、列を追加/削除するときにエラーが発生する可能性が低くなり、列挙を最新の状態に保つことができます。確かに、セルの text プロパティを空の文字列に設定することもできます。

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)

ほんの少しの考えです!

于 2012-04-24T18:08:55.117 に答える