如何将数据表行值更新为超链接?

时间:2011-01-21 04:56:26

标签: asp.net

我在c#代码中的dt中有一个数据表,它的列[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>";

但它给了我不能接受字符串值到整数的错误。怎么过来这个?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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);
            }
        }
    }
}