1

asp.netアプリケーションでは、データをにバインドしているという点で、グリッドビューコントロールを使用してlabelgrid-viewます。データが空
の 場合、行の色は赤になります。そうで ない場合は、バインドするデータがある場合、行は緑になります。これは私のコードです:

<asp:TemplateField HeaderText ="Holiday Region">
     <ItemTemplate >
         <asp:Label ID ="lblholdareg" runat ="server" Text ='<%# Eval("Holidaregion") %>' >
         </asp:Label>
     </ItemTemplate>
</asp:TemplateField>
4

5 に答える 5

2

rowdataboundの関数でそれを行うことができますgridview

protected void RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
         //change it according your cell number or find element
         if(e.Row.Cells[0].Text != "")
            e.Row.BackColor = Color.Green;
         else
            e.Row.BackColor = Color.Red;   
    }
}
于 2013-02-26T05:51:39.613 に答える
2

RowDataBound イベントを処理し、e.Row アイテムに入り、CSS クラスを割り当てるか、背景色を直接設定する必要があります。後で再コンパイルせずにレンダリングを変更できるように、CSS クラスを設定することをお勧めします。

<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
    <Columns>
        <asp:TemplateField HeaderText="Holiday Region">
            <ItemTemplate>
                <asp:Label ID="lblholdareg" runat="server" Text='<%# Eval("Holidaregion") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

コード ビハインドでは、データ ソースとして DataTable を使用していると想定し、データ構造に合わせてコードを更新する必要がありました。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    System.Data.DataRow row = (System.Data.DataRow)e.Row.DataItem;
    if (row["Holidaregion"] == null || row["Holidaregion"].ToString().Trim().Length == 0)
    {
        e.Row.CssClass = "row-empty";
    }
    else 
    {
        e.Row.CssClass = "row-full";
    }
}
于 2013-02-26T08:31:46.857 に答える
0

このようなことを試してください

<asp:TemplateField HeaderText ="Holiday Region">
  <ItemTemplate >
    <asp:Label ID ="lblholdareg" runat ="server"
     CSSClass='<%# (String.IsNullOrEmply(Eval("Holidaregion")))?"red:green" %>' 
     Text ='<%# Eval("Holidaregion") %>' >  
    </asp:Label>

   </ItemTemplate>
</asp:TemplateField>

編集:

グリッド ビュー インラインやコード ビハインドと戦う代わりに、jQuery を使用してクライアント側で同じことを達成するだけです

于 2013-02-26T05:51:41.757 に答える
0
if(e.Row.RowType == DataControlRowType.DataRow)
{
    Control l = e.Row.FindControl("Label1");
  ((Label)l).BackColor = System.Drawing.Color.Red;
}
于 2013-02-26T05:53:26.970 に答える
0

このコードを試してみてください。カテゴリごとまたはフィルターごとに色が変わるすべての行です

于 2013-12-21T18:00:30.370 に答える