我想知道是否有可能在GridView_OnRowEditing事件期间检查GridViewRow的BackColor。

当我尝试获取行时,我当前的代码仅返回[Name = 0,ARGB =(0,0,0,0)]。

这是我的代码:

    protected void GridView_OnRowEditing(object sender, GridViewEditEventArgs e)
    {
        var row = GridView1.SelectedRowStyle;
        if (row.BackColor == Color.White)
        {
            errorLabel.Text = "ERROR - cannot edit this row";
        }
        else
        {
            //Different code
        }
    }


提前致谢。

编辑:是否有替代与ASP GridViewRow DataGridViewRow.Tag?

最佳答案

通过执行以下操作,我可以找到自己的解决方案:

if (GridView1.Rows[e.NewEditIndex].BackColor != Color.SeaGreen &&
                GridView1.Rows[e.NewEditIndex].BackColor != Color.IndianRed)
        {
            e.Cancel = true;
            errorLabel.Text = "Please scan roll before updating QtyRun";
        }
        else
        {
            //do something else
        }


@RichardDias的想法可以,但是asp GridViewRow不允许Tag属性(DataGridViewRow允许Tag属性)。

我不会使用他的方法的另一个原因是因为我已经花了一些时间在我的gridview中突出显示特定的行(这是必须要做的,没有其他选择)。添加另一种“确认”方法似乎效率很低。

通过使用我的方法,我能够利用最初的“按行颜色确认”方法来取消Editing事件。无论如何,谢谢@RichardDias的帮助。

08-07 18:12