Отображение URL-адресов из SQL Server

У меня есть вопрос об отображаемых URL-адресах, которые хранятся в базе данных SQL Server.

Вот пример.
У меня есть поле в таблице под названием "Additionalinfo", в котором хранится эта информация.

Название компании
1 Название улицы, пригород
Тел.: 0000 0000
W: http://www.google.com

Когда я отображаю эту информацию на странице, она отображает информацию в порядке, однако не делает URL-адрес активным. Он просто отображает его как обычный текст.

Я хотел бы отобразить это так:

Название компании
1 Название улицы, пригород
Тел.: 0000 0000
W: http://www.google.com

Есть ли способ сделать URL-адрес активным без изменения текста для ввода в базу данных?

Любая помощь будет принята с благодарностью.


person Jason    schedule 11.06.2009    source источник


Ответы (6)


Вам нужно каким-то образом обернуть тег привязки () вокруг URL-адреса. Либо сделайте это при входе, либо когда он отображается на странице. Вам нужно каким-то образом определить часть URL, если вы делаете это только на дисплее. Если у вас есть поле URL-адреса, которое используется для заполнения этого столбца, это будет самое простое место для размещения этой логики.

Для отображения используйте регулярные выражения. Вот несколько примеров (непроверенных)

http://www.velocityreviews.com/forums/t122843-find-url-in-a-string.html

Хранить

http://www.google.com

as

‹a href="http://www.google.com">http://www.google.com ‹/а>

HTML немного ломается, когда я публикую, но я думаю, вы поняли.

person Cody C    schedule 11.06.2009

Поскольку вы не можете изменить то, что у вас есть в базе данных, я бы сделал замену, когда вы отображаете URL-адрес. Проверьте, начинается ли элемент базы данных с http:// или на основе столбца, который выходит из базы данных, а затем оберните его тегом привязки.

person Avitus    schedule 11.06.2009

Если вы отображаете информацию в элементе управления rtf, он должен сделать URL-адрес «активным».

person Mosquito Mike    schedule 11.06.2009

Для последней строки сделайте что-то вроде этого:

litUrl.Text = string.Format(@"W: <a href=""{0}"">{0}</a>", datareader["W"]);

Где litUrl — буквальный элемент управления. Конечно, это предполагает что-то очень похожее на ASP.Net/C#. Вы действительно не поделились тем, что используете для извлечения этих данных и размещения их на странице. Совместное использование вашего существующего кода действительно поможет.

person Joel Coehoorn    schedule 11.06.2009

если вы используете контроллер с событием OnItemDataBound, вы можете сделать это в коде позади.

Hyperlink test;
test.NavigateUrl = [item from database];
test.Text = [whatever Text];
person Jack Marchetti    schedule 11.06.2009

Просто надо подробнее написать...

Классический АСП:

Response.Write(theUrl)
Response.Write("<a href="""+theUrl+""">"+theUrl+"</a>")

PHP

echo(theUrl);
echo('<a href="' . theUrl . '">' . theUrl . '</a>');

Кричи, если хочешь другой язык...

person Fenton    schedule 10.09.2009