Кликабельная ссылка в колонне Radgrid
Вопрос
У меня есть Radgrid, где столбец в сетке удерживает URL. Когда a Поместите значение в столбце, я могу видеть URL, но URL не на кликабеле (для перехода на URL). Как я могу сделать кликабельный URL?
Вот грубый пример того, что я делаю сейчас:
DataTable table = new DataTable();
DataRow row = table.Rows[0];
row["URL"] = "http://www.google.com";
grid.DataSource = table;
Кроме того, я бы очень хотел бы показать конкретный текст вместо URL. Что-то подобное <a href="http://www.google.com">Link</a>
в HTML. Есть какой-либо способ сделать это?
Решение 2
Добавьте все столбцы вручную на странице ASCX и сделайте столбец, который вы хотите содержать гиперссылку a gridtemplateColumn:
<telerik:GridTemplateColumn
UniqueName="TemplateLinkColumn"
AllowFiltering="false"
HeaderText="URL">
<ItemTemplate>
<asp:HyperLink ID="Link" runat="server"></asp:HyperLink>
</ItemTemplate>
</telerik:GridTemplateColumn>
Убедитесь, что ваша сетка имеет метод onitemdatubound:
<telerik:RadGrid
ID="RadGrid"
runat="server"
AutoGenerateColumns="False"
OnItemDataBound="RadGrid_ItemDataBound" >
В вашем методе OniteMDatuound установите поле на URL-адрес:
protected void RadGrid_ItemDataBound(object aSender, GridItemEventArgs anEventArgs)
{
//Get the row from the grid.
GridDataItem item = anEventArgs.Item as GridDataItem;
GridTableCell linkCell = (GridTableCell)item["TemplateLinkColumn"];
HyperLink reportLink = (HyperLink)reportLinkCell.FindControl("Link");
// Set the text to the quote number
reportLink.Text = "Google";
//Set the URL
reportLink.NavigateUrl = "http://www.google.com";
//Tell it to open in a new window
reportLink.Target = "_new";
}
Другие советы
Вы пробовали GridhyPerlinkColumn? Ниже приведен подробный пример.
<telerik:GridHyperLinkColumn FooterText="HyperLinkColumn footer" DataTextFormatString="Search Google for '{0}'" DataNavigateUrlFields="CompanyName" UniqueName="CompanyName" DataNavigateUrlFormatString="http://www.google.com/search?hl=en&q={0}&btnG=Google+Search" HeaderText="HyperLink<br/>Column" DataTextField="CompanyName"></telerik:GridHyperLinkColumn>
Вы также можете просмотреть демоседу, чтобы увидеть, как это работает.http://demos.telealik.com/aspnet-ajax/grid/example/generalfeatures/Columntypes/defaultc.aspx.
Вам также нужно будет проверить правильный тип, следующим образом;
if (anEventArgs.Item.GetType().Name != "GridDataItem")
{
return;
}