C# GridView RowDataBound Ошибка
У меня есть вид сетки, который должен быть редактируемым при щелчке строки. Это сеточное представление доступно для щелчка в строке, поэтому, когда я щелкну по нему, строка будет отображаться на других страницах для редактирования. Я получил такую ошибку
Указанный аргумент находится вне диапазона допустимых значений. Имя параметра: индекс.
Это происходит для этой строки:
LinkButton _singleClickButton = (LinkButton)e.Row.Cells[1].Controls[1];
Как я могу это исправить?
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// Get reference to button field in the gridview.
LinkButton _singleClickButton = (LinkButton)e.Row.Cells[1].Controls[1];
string _jsSingle = ClientScript.GetPostBackClientHyperlink(_singleClickButton, "Select$" + e.Row.RowIndex);
e.Row.Style["cursor"] = "hand";
e.Row.Attributes["onclick"] = _jsSingle;
}
}
}
1 ответ
Вы должны использовать что-то вроде e.Row.FindControl("linkbuttonid")
, Это даст вам необходимую кнопку ссылки из текущей строки, затем вы можете прикрепить к ней свои обработчики и выполнить свою логику