Я использую код, найденный здесь, чтобы в моем представлении сетки были интерактивные строки. Код для этого:
protected void gvdownloadaccounts_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Visible = false; //hide the ID
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] = "this.style.cursor='pointer';this.style.textDecoration='underline';";
e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';";
e.Row.ToolTip = "Click to select row";
e.Row.Attributes["onclick"] = this.Page.ClientScript.GetPostBackClientHyperlink(this.gvdownloadaccounts, "Select$" + e.Row.RowIndex);
}
}
... который отлично работает! ... за исключением того, что мне нужно сделать так, чтобы "onclick" запускал метод С# в коде позади. Этот метод получает данные из базы данных и заполняет некоторые веб-элементы управления (например, текстовые поля и т. д.) этими данными. Кажется, это не должно быть так уж сложно, поэтому, если бы кто-то мог просто пнуть меня в правильном направлении, это было бы здорово.
Я играл с идеей просто перенаправить на ту же страницу, но со строкой запроса, чтобы я мог поймать свой код на page_load. Но как и следовало ожидать:
e.Row.Attributes["onclick"] = Response.Redirect("www.google.com");
... не работает.