Я пытаюсь динамически добавить HyperLinkColumns в свой GridView. У меня такой код:
HyperLinkColumn objHC = new HyperLinkColumn();
objHC.DataNavigateUrlField = "title";
objHC.DataTextField = "Link text";
objHC.DataNavigateUrlFormatString = "id, title";
objHC.DataTextFormatString = "{2}";
GridView1.Columns.Add(objHC);
Это не работает, поэтому ... как я могу добавить HyperLinkColumn в свой GridView?





Похоже, вы что-то перепутали. Я не знаю - как этот код компилируется?
Коллекция столбцов GridView может принимать столбцы типа «DataControlField». Я думаю, вам нужно инициализировать HyperLinkField и установить соответствующие свойства (текст, NavigateUrl, HeaderText, Target) и добавить его в коллекцию столбцов.
Класс HyperLinkColumn имеет смысл, когда вы используете DataGrid (не в случае GridView).
Надеюсь, это поможет.
Вы должны сделать это до того, как произойдет привязка данных, проверьте События GridView.
Вы можете добавить его, когда строка привязана:
protected void yourGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
HyperLink hlControl = new HyperLink();
hlControl.Text = e.Row.Cells[2].Text; //Take back the text (let say you want it in cell of index 2)
hlControl.NavigateUrl = "http://www.stackoverflow.com";
e.Row.Cells[2].Controls.Add(hlControl);//index 2 for the example
}
В случае, если вы просто хотите перенаправить на другой URL-адрес, просто используйте веб-элемент управления HyperLink и вставьте его в нужную ячейку GridView Row в событии RowDataBound.
OR
Если вы хотите выполнить какое-либо событие сервера перед его отправкой на другой URL-адрес, попробуйте это
1) Добавьте объект LinkButton в событие RowDataBound GridView.
2) Задайте свойство CommandName, CommandArgument, если требуется передать какие-либо данные этому объекту.
3) Захватите это событие, обработав событие RowCommand GridView.
Кстати, я просто думаю, что вы можете использовать DataGridView и в конструкторе выберите столбец Link, и ваша проблема будет решена. В DataGridView есть столбец ссылок, поэтому вам просто нужно добавить событие в «Click», и вы сможете получить то, что хотите. Это решение работает, если вы можете переключиться на DataGridView.
Я думаю, вам следует использовать HyperLinkField, а не HyperLinkColumn.
Я знаю, что эта ветка устарела, но не мог не добавить свои 2 цента. Процедура, описанная в следующем руководстве, у меня отлично сработала: ASP Альянс
это действительно полезно для меня ... не могли бы вы рассказать мне о событиях, связанных с этой гиперссылкой?