将DataTable单元格的文本转换为超链接,然后将其添加回DataTable

时间:2015-05-15 18:52:00

标签: c# asp.net

我试图将单元格的文本转换为超链接,但我得到的结果如下。

  

System.Web.UI.WebControls.TableCell

而不是www.google.ca

所以没有错误,它只是我期待的完全错误的文字。

这是我的代码

DataTable dt = new DataTable();
//code to populate dt, there's a column called "TEXT", which I would like to
//dynamically make into a hyperlink if the text has more than 250 characters

foreach (DataRow dr in dt.Rows){
  if (dr["TEXT"].ToString().Length > 250){
    HyperLink link = new HyperLink();
    link.NavigateUrl = "www.google.ca";
    link.Text = "www.google.ca";

    TabelCell tc = new TableCell();
    tc.Controls.Add(link);

    dr["TEXT"] = tc;
  }
}

我还尝试将HyperLink直接添加到DataColumn

dr["TEXT"] = link;

但我得到了同样的结果。

我将DataTable绑定到DataGrid

2 个答案:

答案 0 :(得分:0)

你'foreach'代码必须是:

foreach (DataRow dr in dt.Rows){}

你忘了“.Rows”

答案 1 :(得分:0)

您在数据表格单元格中获得System.Web.UI.WebControls.TableCell的原因是,这是您在ToString()对象上致电TableCell时获得的结果。
您无法使用数据表来存储此类参考类型数据 您应该将导航网址存储在一列中,将文本存储在另一列中,并使用数据网格中的HyperLinkColumn将其显示为HyperLink。