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

本文关键字:数据表 然后 添加 单元格 文本 转换 超链接 | 更新日期: 2023-09-27 17:49:14

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

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;
  }
}

我还尝试将超链接直接添加到数据列

dr["TEXT"] = link;

但我只是得到了相同的结果。

我将DataTable绑定到DataGrid

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

您的'foreach'代码需要为:

foreach (DataRow dr in dt.Rows){}

你忘了"。行"

在数据表单元格中得到System.Web.UI.WebControls.TableCell的原因是,这是在TableCell对象上调用ToString()时得到的结果。
你不能像这样使用数据表来存储引用类型的数据。
您应该将导航url存储在一列中,将文本存储在另一列中,并在数据网格中使用HyperLinkColumn将其显示为超链接。