Я хочу дублировать ту же функциональность кнопки редактирования, используя один щелчок в любом месте строки GridView.
Приведенный ниже код делает это, но с серьезной проблемой: если пользователь щелкает одно текстовое поле за другим, команда редактирования запускается снова , и изменения, внесенные в предыдущее текстовое полевернуться к исходному значению.
Есть ли какие-либо предложения о том, как исправить это поведение?
Или есть ли лучший подход для достижения этой цели?
РЕДАКТИРОВАТЬ: Это было решено добавлением проверки для 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 );
}