【问题标题】:Change color of specific rows (TELERIK)更改特定行的颜色 (TELERIK)
【发布时间】:2012-03-22 20:06:30
【问题描述】:

我的网格中有一个显示“INDEF”或“MA”的 GridTemplateColumn。当它是“INDEF”时,我希望我的行改变颜色:

这是我的尝试:

protected void grid_ItemDataBound(object sender, GridItemEventArgs e)
{
 if (e.Item is GridDataItem)
 {
   GridDataItem item = (GridDataItem)e.Item;
   Label lbl = (Label)item.FindControl("test");
   if (lbl.Text == "INDEF")
   {
    lbl.ForeColor = System.Drawing.Color.Red;
   }
 }
}

带有相关列的代码:

              <telerik:GridTemplateColumn  HeaderText="Type de tickets"
    UniqueName="typedestickets">
    <ItemTemplate><asp:Label id="test" runat="server"></asp:Label></ItemTemplate>
</telerik:GridTemplateColumn>

但我注意到通过添加断点 e.Item 不是 GridDataItem 而是 GridPagerItem(我不知道为什么)

所以我尝试了这个:(也不工作)

protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
    if (e.Item is GridPagerItem)
    {
        GridPagerItem item = (GridPagerItem)e.Item;
        Label lbl = (Label)item.FindControl("test");



        if (lbl.Text == "INDEF")
        {
            lbl.ForeColor = System.Drawing.Color.Red;
            item.BackColor = System.Drawing.Color.Red;
            lbl.BackColor = System.Drawing.Color.Red;

        }
    }
}

提前感谢您的帮助

【问题讨论】:

    标签: c# asp.net telerik radgrid


    【解决方案1】:

    试试这个

    protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
        //Is it a GridDataItem
        if (e.Item is GridDataItem)
        {
            //Get the instance of the right type
            GridDataItem dataBoundItem = e.Item as GridDataItem;
    
            //Check the formatting condition
            if (int.Parse(dataBoundItem["typedestickets"].Text) =="INDEF")
            {
                dataBoundItem["typedestickets"].ForeColor = Color.Red;
                dataBoundItem["typedestickets"].Font.Bold = true;
                //Customize more...
            }
        }
    }
    

    【讨论】:

    • 感谢您的快速回复,但我不明白您的代码,“TicketType 应该是什么?您为什么尝试将 databounditem 转换为 Int?谢谢
    • 我的意思是 TicketType 是列名,int 是列的类型。例如:如果要将名称为“Column1”的字符串类型的列绑定到标签,则使用 dataBoundItem["Column1"].Text
    • 我的 GridTemplateColumn 的 uniqueName 是 typedestickets。所以我尝试了: if (int.Parse(dataBoundItem["typedestickets"].Text) > 100) { dataBoundItem["typedestickets"].ForeColor = Color.Red; dataBoundItem["typedestickets"].Font.Bold = true; //自定义更多... } 但它不起作用错误“输入字符串格式不正确”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多