Добавить гиперссылку на объект данных / сетку - PullRequest
1 голос
/ 22 марта 2012

Я уверен, что об этом уже спрашивали, но не могу найти подходящий ответ.

Я создаю таблицу данных динамически и использую ее для заполнения вида сетки веб-элемента управления ...

Мне интересно, можно ли заменить 1 столбец (URL) гиперссылкой?

Мой код для создания таблицы данных:

private DataTable CreateDataTable()
{
    DataTable myDataTable = new DataTable();
    DataColumn myDataColumn;

    myDataColumn = new DataColumn();
    myDataColumn.DataType = Type.GetType("System.String");
    myDataColumn.ColumnName = "Title";
    myDataTable.Columns.Add(myDataColumn);

    myDataColumn = new DataColumn();
    myDataColumn.DataType = Type.GetType("System.String");
    myDataColumn.ColumnName = "URL";

    myDataTable.Columns.Add(myDataColumn);
.
.
.
}

Я добавляю в таблицу данных следующее:

private void AddDataToTable(string title, string strLink......
        {
            DataRow row = myTable.NewRow();
            row["Title"] = title;
            row["URL"] = strLink;
            .
            .
            .

затем привязка данных к виду сетки:

datagrid.DataSource = ((DataTable)Session["myDatatable"]).DefaultView;

datagrid.DataBind();

Ответы [ 3 ]

2 голосов
/ 22 марта 2012

Вы не сделаете этого в Datatable - это просто представление данных в памяти.Он не содержит ничего о типах столбцов в виде сетки.

Как только он появится в DataGridView, просто установите тип столбца на DataGridViewLinkColumn .

1 голос
/ 05 мая 2015

Вы можете сделать

row["URL"] = "<a href='www.stackoverflow.com'>Stack Overflow</a>";

Но тогда вы должны использовать BoundField в GridView и установить HtmlEncode="false":

<asp:BoundField DataField="URL" HtmlEncode="false" HeaderText="URL" HeaderStyle-Wrap="false" SortExpression="URL">
    <ItemStyle Width="25% />
</asp:BoundField>
0 голосов
/ 22 марта 2012

когда вы привязываетесь к сетке или подробному представлению, вы можете добавить элемент управления гиперссылкой в ​​столбец URL (поле Шаблон) и установить

NavigateUrl='<%# Eval("URL")%>'

ИЛИ

Если вы хотите перейти на другой веб-сайт, например, Google, установите

NavigateUrl='<%# String.Format("http://{0}", Eval("URL")) %>'

...:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...