如何检查组合RowState'改变| 在RowDataBound中编辑?

Ale*_*eci 5 c# asp.net data-binding gridview rowstate

在我的页面上,我设置了一个包含几列的GridView.我编写了更新,删除和插入方法.当我的GridView绑定其数据时,会调用以下方法:

protected void GridViewAutomat_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if(e.Row.RowState != DataControlRowState.Edit)
        { 
            //some code

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的第二个if语句的问题是,当我的GridView进入编辑模式时(当我想更新我的GridView中的记录时)它没有捕获到RowState 备用| 编辑看起来像这样(这是我调用Update方法后RowState的方式):

在此输入图像描述

当我尝试将两个RowStates分开组合时,它也不会工作:

if(e.Row.RowState != DataControlRowState.Edit && 
   e.Row.RowState != DataControlRowState.Alternate)
Run Code Online (Sandbox Code Playgroud)

当行不处于编辑(备用|编辑)模式时,应该执行if语句中的代码,这就是我!=作为运算符的原因

有谁知道我怎么能抓住组合模式Alternate | 一起编辑和编辑模式?

小智 4

您可以在以下位置查看:

在解决方法中:

if (e.Row.RowType == DataControlRowType.DataRow &&
    e.Row.RowState != DataControlRowState.Edit && 
    e.Row.RowState != (DataControlRowState.Edit | DataControlRowState.Alternate))
{ 
    //... Here is logic
}
Run Code Online (Sandbox Code Playgroud)

或者:

if (e.Row.RowType == DataControlRowType.DataRow)
{
    if (e.Row.RowState != DataControlRowState.Edit && 
        e.Row.RowState != (DataControlRowState.Edit | DataControlRowState.Alternate))
    {
        //... here is logic
    }
}
Run Code Online (Sandbox Code Playgroud)