繁体   English   中英

更改ASP.NET表单元格中文本的颜色(根据值)

[英]Change color of text in ASP.NET table cell (according to value)

您能帮我吗:我正在创建一些包含其属性和值的项目的表(一段时间)。 看起来像:

表

我想更改这些值的颜色,可以说0将是绿色1蓝色2红色。

DataView dv = new DataView(grid);
myGridView.DataSource = dv;
myGridView.DataBind();

如果我需要更具体,请告诉我,我不是专业人士。 我不知道该在哪里控制牢房。 我还想在文本上添加鼠标(这样它将显示当前值的出现日期)。 也许一些功能/ JavaScript ...?

您可以使用带有OnRowDataBound属性的gridview控件将特定的属性绑定到每个单元格/行。

使用gridview的OnRowDataBound事件,这里是示例

protected void GridCompany_OnRowDataBound(object sender, GridViewRowEventArgs e)
    {
        foreach (GridViewRow gridViewRow in GridCompany.Rows)
        {
            if (gridViewRow.RowType == DataControlRowType.DataRow)
            {
                if (gridViewRow.Cells[6].Text.ToUpper() == "TRUE")// find your cell value and check for condition
                { 
                   // put here your logic
                }
                else
                {
                   // put here your Else logic
                }
            }
        }
    }

使用jQuery的非常简单且轻巧的解决方案:

后面的代码:

public partial class GridViewCellColourChange : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            gvItems.DataSource = this.GetData();
            gvItems.DataBind();
        }
    }

    private IEnumerable<Item> GetData()
    {
        var item1 = new Item { item = "itm1", prop1 = "23", prop2 = "asd", prop3 = "23d", values = "0-0-0-0-0" };
        var item2 = new Item { item = "itm2", prop1 = "43", prop2 = "asd", prop3 = "23d", values = "0-0-0-0-0" };
        var item3 = new Item { item = "itm3", prop1 = "53", prop2 = "asd", prop3 = "23d", values = "0-0-0-0-0" };

        return new List<Item> { item1, item2, item3 };
    }
}

public class Item
{
    public string item { get; set; }
    public string prop1 { get; set; }
    public string prop2 { get; set; }
    public string prop3 { get; set; }
    public string values { get; set; }
}

.ASPX:

<head runat="server">
    <title></title>
    <script src="https://code.jquery.com/jquery-1.12.2.min.js"></script>
    <script>
        $(function () {  
            $("#gvItems > tbody > tr").each(function (i, row) {
                var children = $(row).children();
                for(var i=0; i < children.length;i++)
                {
                    var child = children[i];
                    if(child.localName == "td")
                    {
                        var text = $(child).text();

                        if(text == "23")
                        {
                            $(child).css("background-color", "red");
                        }
                        else if(text == "43")
                        {
                            $(child).css("background-color", "green");
                        }
                    }
                }
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:GridView ID="gvItems" runat="server"></asp:GridView>
        </div>
    </form>
</body>

输出:

根据值更改网格视图单元格颜色

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM