在我的页面上,我设置了一个包含几列的 GridView。我编写了一个更新、删除和插入方法。当我的 GridView 绑定(bind)其数据时,将调用以下方法:
protected void GridViewAutomat_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if(e.Row.RowState != DataControlRowState.Edit)
{
//some code
}
}
}
我的第二个 if 语句的问题是,当我的 GridView 进入编辑模式时(当我想更新我的 GridView 中的记录时)它没有捕获 RowState
Alternate |编辑,看起来像这样(这是我调用更新方法后 RowState 的样子):
当我尝试分别组合两个 RowStates 时,它也不起作用:
if(e.Row.RowState != DataControlRowState.Edit &&
e.Row.RowState != DataControlRowState.Alternate)
if 语句中的代码应在行未处于编辑(Alternate | Edit)模式时执行,这就是为什么我将 !=
作为运算符
有谁知道我怎样才能捕捉到组合模式 Alternate |编辑和编辑模式一起?
最佳答案
您可以 checkin :
编辑模式:
e.Row.RowState != DataControlRowState.Edit
改变 |编辑模式:
e.Row.RowState != (DataControlRowState.Edit | DataControlRowState.Alternate)
解决方法:
if (e.Row.RowType == DataControlRowType.DataRow &&
e.Row.RowState != DataControlRowState.Edit &&
e.Row.RowState != (DataControlRowState.Edit | DataControlRowState.Alternate))
{
//... Here is logic
}
或者:
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState != DataControlRowState.Edit &&
e.Row.RowState != (DataControlRowState.Edit | DataControlRowState.Alternate))
{
//... here is logic
}
}
关于c# - 如何检查 RowDataBound 中的组合 RowState 'Altering | Edit'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46235347/