У меня есть Crid / ASP.net GridView, который содержится в UserControl. Как у меня сейчас, gridview добавит атрибут onrowclick следующим образом:
protected void _gridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(this.GridView, "EditRow$" + e.Row.RowIndex);
}
Однако я получаю неверную ошибку обратной передачи из-за EventValidation, когда происходит это событие щелчка. Кроме того, у меня есть кнопки в строке, которые используют GridViewRowCommands для перенаправления на другие страницы. К сожалению, я не могу заставить оба работать вместе (функция RowCommand никогда не запускается).
Например, этот обработчик я бы использовал:
protected void _gridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.ToString() == "EditRow" && e.CommandArgument.ToString() == "0")
Response.Redirect(anotherURL);
if (e.CommandName.ToString() == "BACK" && e.CommandArgument.ToString() == "0")
Response.Redirect(thisURL);
}
И это кнопка, которую я использую в строке:
<asp:Button ID="_AddButton" runat="server" CommandName="BACK" CommandArgument="0" Text="Add" />
В идеале, row-onclick также будет использовать эти GridViewRowCommands, чтобы можно было обрабатывать перенаправление в одном месте. Тем не менее, я не уверен, как это сделать. Какие-нибудь предложения относительно лучшего подхода?
Спасибо за вашу постоянную поддержку!