Gridview中的OnDatabound事件无法处理Edit

时间:2014-03-04 14:08:47

标签: c# asp.net .net gridview

我有一个具有各种状态的列,根据字母改变颜色。

例如,如果字母是'R',那么单元格是红色的,如果'G'则是绿色等等......

问题是这最初有效,但是当用户编辑记录并更改状态时,颜色不会更新为相应的字母。

请看一下代码,让我知道我做错了什么:

 if (dataItem != null)
            {
                var label = dataItem["Status"].FindControl("StatusID") as Label;

                if (label != null)
                {

                    var item = dataItem;
                    var text = label.Text;

                    switch (text)
                    {
                        case "G":
                            item["Status"].BackColor = Color.Green;

                            break;
                        case "Y":
                            item["Status"].BackColor = Color.Yellow;
                            break;
                        case "O":
                            item["Status"].BackColor = Color.Orange;
                            break;
                        case "M":
                            item["Status"].BackColor = Color.SaddleBrown;
                            break;
                        case "R":
                            item["Status"].BackColor = Color.Red;
                            break;
                        case " ":
                            item["Status"].BackColor = Color.Gray;
                            break;
                    }
                }
            }

更新 现在当我去编辑记录时,一些记录不允许我更新它们。

<EditItemTemplate>
    <telerik:RadComboBox ID="StatusDDL" runat="server" SelectedValue='<%#
Bind("Status")%>' DataTextField="Status" Width="100px" Skin="Metro" style="margin-top: 5px; margin-bottom: 5px" DataValueField="Status" DataSourceID="StatusFilter" TabIndex="7" AppendDataBoundItems="True"></telerik:RadComboBox>                     
</EditItemTemplate>


<ItemTemplate>
    <asp:Label runat="server" ID="StatusID" Text='<%# Bind("Status")%>'></asp:Label>
</ItemTemplate>

1 个答案:

答案 0 :(得分:0)

找到我的解决方案:

 if (dataItem == null) return;

    switch (dataItem["Status"].Text)
    {
        case "G":
            dataItem["Status"].BackColor = Color.Green;

            break;
        case "Y":
            dataItem["Status"].BackColor = Color.Yellow;
            break;
        case "O":
            dataItem["Status"].BackColor = Color.Orange;
            break;
        case "M":
            dataItem["Status"].BackColor = Color.SaddleBrown;
            break;
        case "R":
            dataItem["Status"].BackColor = Color.Red;
            break;
        case " ":
            dataItem["Status"].BackColor = Color.Gray;
            break;
    }