2016-06-27 12 views
0

グリッドビューがあります。 Datatableはデータソースです。Gridviewの動的リンクC#

グリッドビューの列にリンクを追加できるソリューションを探しています。しかし、ハイパーリンクフィールドを作成したり、デザイナーの部分と一緒に遊びたいことさえできません。

これは一般的なグリッドビューで、列を含む動的なデータを取得します。

必ずしもすべてのデータソースにハイパーリンクとしてターゲットとなる「名前」列がありません。

<a href='...'>text</a>を生成できましたが、そのままグリッドビューに表示しています。

HTMLブロック:背後に

<asp:GridView ID="gvCommonDashboard" runat="server"> 

</asp:GridView> 

コード:

foreach (DataRow dr in dt.Rows) 
{       
    string name = Convert.ToString(dr["Name"]); 

    string url = SPContext.Current.Web.Url + listName + "/" + name; 
    dr["Name"] = string.Format("<a href='" + url + "'>" + name + "</a>"); 

} 
dt.AcceptChanges();          

gvCommonGrid.DataSource = dt; 
gvCommonGrid.DataBind(); 
gvCommonGrid.Visible = true; 
+0

ハイパーリンクを使用していない理由 –

+0

あなたはハイパーリンクフィールドを意味していますか? – Gaurravs

+0

テンプレートフィールド内のハイパーリンクフィールドまたはハイパーリンク –

答えて

1

-

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     string decodedText = HttpUtility.HtmlDecode(e.Row.Cells[CellIndex].Text); 
     e.Row.Cells[CellIndex].Text = decodedText; 
    } 
} 

変更し、あなたの実際のセルのインデックス番号にCellIndex。

+0

私のために働いた。ありがとう – Gaurravs

0

あなたは私が私のためにその作品が細かいこれを試してみました

string.Format("<a href='" + fullPath + "'>Text</a>"); 

を使用して文字列をフォーマットすることができます。あなたは、GridViewのRowDataBoundのイベントにリンクを構築することができ

+0

私はこれを試しましたが、動作していません – Gaurravs

関連する問題