2011-01-21 36 views
0

我有一个dt在c#代码中的数据表,它有列[0]数据类型是int.So当我达到表中的第7个值时,我需要转换为超链接并将其添加回数据表。如何将数据表的行值更新为超链接?

int x = int.Parse(dt.Rows[7][0].ToString()); 
dt.Row[7][0] = "<a href=\"http:www.google.com\">" + x + "</a>"; 

但它给我的错误,不能接受字符串值为整数。如何过来这个?

+0

您不能将字符串值分配给int类型列。 – adatapost 2011-01-21 05:03:37

回答

0

你是如何创建数据表的?该列可能已被键入为int,因此它不能接受字符串值。

一个更好的办法可能是改变数据绑定控件来显示链接

protected override void OnInit(EventArgs e) { 
    base.OnInit(e); 
    DataBound += new EventHandler(GridView1_DataBound); 
} 

void GridView_RowDataBound(object sender, GridViewRowEventArgs e) { 
    GridView gridview = (GridView)sender; 
    if (e.Row.RowType == DataControlRowType.DataRow) { 
     for (int i = 0; i < gridview.Columns.Count; i++) { 
      DataControlField obj1 = gridview.Columns[i]; 
      if (obj1.GetType() == typeof(BoundField)) { 
       BoundField field = (BoundField)obj1; 
       string datafield = field.DataField; 
       object value = DataBinder.Eval(e.Row.DataItem, datafield); 
       Literal c = new Literal(); 
       c.Text = ""; 
       e.Row.Cells[i].Controls.Add(c); 
      } 
     } 
    } 
} 
1

纠正我,我错了。添加一个字符串类型的额外列。

dt.Columns.Add("LinkColumn"); 
... 
dt.Rows[7]["LinkColumn"]=string.Format("<a href='#'>{0}</a>",x); 
+0

谢谢雅各布。奇怪!我无法在IE 9中格式化我的帖子。 – adatapost 2011-01-21 05:08:41