我希望使用单击网格视图中的任何一行来复制编辑按钮的功能。
以下代码可以做到这一点,但存在一个主要问题:如果用户从一个文本框点击到下一个文本框,编辑命令会再次触发,并且对先前文本框所做的更改将恢复为原始值。
如何修复此行为?是否有更好的方法来实现此目标?
编辑:通过添加对
以下代码可以做到这一点,但存在一个主要问题:如果用户从一个文本框点击到下一个文本框,编辑命令会再次触发,并且对先前文本框所做的更改将恢复为原始值。
如何修复此行为?是否有更好的方法来实现此目标?
编辑:通过添加对
row.RowState.HasFlag( DataControlRowState.Edit )
的检查来解决了此问题。请参见下面的代码:protected override void Render( System.Web.UI.HtmlTextWriter writer )
{
foreach( GridViewRow row in gvwOrderItems.Rows )
{
if( row.RowType == DataControlRowType.DataRow &&
row.RowState.HasFlag( DataControlRowState.Edit ) == false )
{
// enable click on row to enter edit mode
row.Attributes["onclick"] =
ClientScript.GetPostBackClientHyperlink( gvwOrderItems, "Edit$" + row.DataItemIndex, true );
}
}
base.Render( writer );
}