Вопрос

У меня есть 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&amp;q={0}&amp;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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top