【问题标题】:Modify Hyperlinkfield text in Gridview在 Gridview 中修改超链接字段文本
【发布时间】:2010-03-26 12:37:46
【问题描述】:

我被这个难住了。我想在数据绑定到它之后修改 Gridview 的超链接字段中的文本。我在msdn 上找到了与此类似的代码,但我无法让它工作。

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        e.Row.Cells[2].Text = e.Row.Cells[2].Text + "random text";
    }

我也在 Page_PreRender 事件中尝试了类似的代码,但没有成功。我也试过在这行代码之前调用 DataBind() 而没有帮助。我总是在没有来自数据库的数据的情况下在单元格中获得“随机文本”。谢谢

【问题讨论】:

  • 使用您发布的代码——除了调用 DataBind() 之外,在 prerender、init 等中没有任何内容,您会得到多行,其中单元格 2 填充了“随机文本”?如果你注释掉那行,它就充满了数据?

标签: c# .net asp.net gridview


【解决方案1】:

我觉得你应该试试……

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
   if(e.Row.RowType == DataControlRowType.DataRow)
  {
    HyperLink hyp = (HyperLink)e.Row.Findcontrol("YourHyperlinkID");
    hyp.Text = "Your New Text";
  }
}

【讨论】:

  • 您需要为该解决方案创建一个 TemplateColumn
  • 我试过了,但是超链接字段没有 ID 属性,所以我无法通过调用 FindControl 来“找到”它。
【解决方案2】:

我在尝试figure this out myself(基于a similar answer)时发现了您的问题。我看到这个问题是不久前提出的,但我想回答一下,以防其他人发现它正在寻找答案。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    e.Row.Cells[2].Controls[0].Text = e.Row.Cells[2].Controls[0].Text + "random text";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 2010-10-19
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多