Я использую следующий код, чтобы сделать всю строку моего gridview кликабельной:
protected void gridMSDS_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] = "this.style.cursor='pointer';this.style.textDecoration='underline';this.style.backgroundColor='#EEFF00'";
e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';this.style.backgroundColor='White'";
e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(this.gridMSDS, "Select$" + e.Row.RowIndex);
}
}
Что отлично работает, за исключением того, что теперь я хочу добавить возможность редактирования в сетку. Это работает, но когда у меня активированы как функции щелчка строк, так и функции редактирования, нажатие на кнопку ссылки «Редактировать» часто запускает событие щелчка строки и наоборот.
Итак, как сохранить кликабельность строки, кроме указанных столбцов?
UPDATE:
Вот что я использую.
Основано на решении Джастина:
List<int> notClickable = new List<int>();
{
notClickable.Add(0);
notClickable.Add(2);
}
for(int i = 0; i < e.Row.Cells.Count; i++)
{
if (!notClickable.Contains(i))
{
e.Row.Cells[i].Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(this.gridMSDS, "Select$" + e.Row.RowIndex);
}
}