我想知道在GridView_OnRowEditing事件期间是否可以检查GridViewRow的BackColor。
当我尝试获取row.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吗?
答案 0 :(得分:2)
我能够通过这样做找到我自己的解决方案:
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 允许标记属性( DataGridViewRow 允许用于Tag属性。)
我不会使用他的方法的另一个原因是因为我已经花时间在我的gridview中突出显示特定的行(需要完成,无可替代)。要添加另一种确认方法'似乎效率低下。
通过使用我的方法,我能够利用我的初始确认行颜色'取消编辑事件的方法。无论如何,谢谢你@RichardDias的帮助。
答案 1 :(得分:1)
尝试做类似的事情:
public void ScanRows()
{
foreach (DataGridViewRow row in GridView1.Rows)
{
row.DefaultCellStyle.BackColor = Color.Green;
//Indicate that this row already was scanned
row.Tag = true;
}
}
protected void GridView_OnRowEditing(object sender, GridViewEditEventArgs e)
{
var row = GridView1.SelectedRow;
if (!((bool)(row.Tag ?? false)))
{
errorLabel.Text = "ERROR - cannot edit this row";
}
else
{
//Different code
}
}