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"), Это даст вам необходимую кнопку ссылки из текущей строки, затем вы можете прикрепить к ней свои обработчики и выполнить свою логику

Другие вопросы по тегам