6

グリッド内の列がURLを保持するRadGridがあります。列に値を入力すると、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に似たもの。とにかくこれを行うことはありますか?

4

3 に答える 3

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>

デモサイトを表示して、どのように機能するかを確認することもできます。 http://demos.telerik.com/aspnet-ajax/grid/examples/generalfeatures/columntypes/defaultcs.aspx

于 2010-04-07T07:19:30.713 に答える
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";
}
于 2010-04-08T18:13:29.010 に答える
0

また、次のように正しいタイプを確認する必要があります。

if (anEventArgs.Item.GetType().Name != "GridDataItem")
{
    return;
}
于 2014-11-28T11:42:31.433 に答える