2010-04-06 58 views
6

我有一個RadGrid,網格中的一列包含一個URL。當在列中放置一個值時,我可以看到URL,但URL不可點擊(轉到URL)。我怎樣才能讓URL可點擊?RadGrid列中的可點擊鏈接

這裏是什麼,我現在在做一個粗略的例子:

DataTable table = new DataTable(); 
DataRow row = table.Rows[0]; 
row["URL"] = "http://www.google.com"; 
grid.DataSource = table; 

此外,我真的很想表現出特定的文本,而不是URL。類似於HTML中的<a href="http://www.google.com">Link</a>。無論如何要做到這一點?

回答

6

手動添加的所有列在ASCX頁面,並要包含的超鏈接的GridTemplateColumn列:

<telerik:GridTemplateColumn 
    UniqueName="TemplateLinkColumn" 
    AllowFiltering="false" 
    HeaderText="URL"> 
    <ItemTemplate> 
     <asp:HyperLink ID="Link" runat="server"></asp:HyperLink> 
    </ItemTemplate> 
</telerik:GridTemplateColumn> 

確保網格有一個OnItemDataBound方法:

<telerik:RadGrid 
    ID="RadGrid" 
    runat="server" 
    AutoGenerateColumns="False" 
    OnItemDataBound="RadGrid_ItemDataBound" > 

在您的OnItemDataBound方法中將字段設置爲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"; 
} 
+0

>中點擊此項它在此行中給出空指針異常GridTableCell linkCell =(GridTableCell)item [「TemplateLinkColumn」]; – 2011-10-29 10:31:17

+0

設置reportLink的行中的小錯字:應該只是 HyperLink reportLink =(HyperLink)linkCell.FindControl(「Link」); – 2015-01-06 22:17:03

8

您是否嘗試過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> 

您也可以查看demosite以瞭解它是如何工作的。 http://demos.telerik.com/aspnet-ajax/grid/examples/generalfeatures/columntypes/defaultcs.aspx

+0

感謝邁克爾,是否有可能使用JavaScript onclick事件像: Ajax,高級函數 – Sensa 2012-05-15 14:49:12

+0

我喜歡在 Sensa 2012-05-15 14:49:49

0

您還需要檢查正確的類型,如下所示;

if (anEventArgs.Item.GetType().Name != "GridDataItem") 
{ 
    return; 
}