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
您可以在以下位置查看:
编辑模式:
e.Row.RowState != DataControlRowState.Edit
Run Code Online (Sandbox Code Playgroud)改变 | 编辑模式:
e.Row.RowState != (DataControlRowState.Edit | DataControlRowState.Alternate)
Run Code Online (Sandbox Code Playgroud)在解决方法中:
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)