簡體   English   中英

在GridView的1個單元格中更改文本顏色

[英]Change text color in 1 cell in gridview

我在此列有一個gridview:

<asp:TemplateField HeaderText="Importe" SortExpression="importe">
<EditItemTemplate>
    <asp:Label ID="lblImporte" runat="server" Text='<%# Eval("importe") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
    <asp:Label ID="lblImporte" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "importe", "{0:#,##0.00}") %>'></asp:Label>
</ItemTemplate>
<ItemStyle ForeColor="Red" />

默認情況下,文本顏色為紅色。 以編程方式比較兩個量,我需要更改字體顏色。

在我的代碼中

Label lblImporte = (Label)gvTablaMes.Rows[e.RowIndex].FindControl("lblImporte");

我嘗試了這個但沒有成功。

lblImporte.ForeColor = System.Drawing.Color.Green;

我認為我必須使用類似的方法,但是我不知道如何為該列使用索引(我寫了一個X)

gvTablaMes.Rows[e.RowIndex].Cells[X].ForeColor = System.Drawing.Color.Green;

您已在普通模式下遍歷了gridview。 但是您需要找到的標簽控件在edittemplate內部。
為此,在代碼隱藏文件中包含以下Rowdatabound事件。

protected void gvTablaMes_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if ((e.Row.RowState == DataControlRowState.Edit) || (e.Row.RowState == (DataControlRowState.Edit | DataControlRowState.Alternate)))
        {
            // the above checking is to verify whether the rows as well as alternating rows are in edit mode
            Label lblImporte = (Label)e.Row.FindControl("lblImporte");
            lblImporte.ForeColor = System.Drawing.Color.Green;
        }
    }

並且不要忘記將OnRowDataBound =“ gvTablaMes_RowDataBound”包含到gridview標簽中。
希望能對您有所幫助。讓我知道其中的任何問題。
快樂的編碼:)

例如,嘗試更改page_load()方法,

protected void Page_Load(object sender, EventArgs e)
{

    Label1.ForeColor = System.Drawing.Color.Orange;

}

<form id="form1" runat="server">
<div>

    <asp:Label ID="Label1" runat="server"></asp:Label>

</div>
</form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM