Получение объекта гиперссылки из события RowDataBound - PullRequest
0 голосов
/ 20 января 2011

Мне нужно программно отключить определенные гиперссылки в виде сетки на основе значения другого столбца в строке.Я решил обработать событие OnRowDataBound, чтобы выполнить итерацию и установить их во время выполнения.В основном это работает, за исключением того, что мне нужно добраться до объекта HyperLink.Как мне это сделать?

Вот где я нахожусь

    protected void IncomingTransfersGv_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        // COLUMN OFFSET IN USE
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            object[] dataitems = ((DataRowView)e.Row.DataItem).Row.ItemArray;
            string carrier = (string)dataitems[7].ToString();

            if (carrier.ToLower() == "hand")
                (dataitems[8] as HyperLink).Enabled = false;//How can I get the hyperlink object here?  dataitems[8] only gives me the column's value..I don't need this
        }
    }

ОБНОВЛЕНИЕ Преобразования не работают.Я получаю сообщение об ошибке не может преобразовать тип TableCell в гиперссылку.HyperLinkField не имеет атрибута ID.В статье я изменил поле гиперссылки на поле шаблона, что должно как-то облегчить эту задачу, но, к сожалению, в статье не говорится, как ... какие-либо идеи?

Ответы [ 2 ]

1 голос
/ 20 января 2011

Попробуйте найти элемент управления.

HyperLink hl = (HyperLink)e.Row.FindControl(ControlName)
0 голосов
/ 20 января 2011

Попробуйте

 var hyperLink = (HyperLink)e.Row.FindControl(e.Row.Cells[8].Text)
...